<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Design System Guide]]></title><description><![CDATA[Get weekly insights, tools, and templates to help you build and scale design systems.]]></description><link>https://learn.thedesignsystem.guide</link><image><url>https://substackcdn.com/image/fetch/$s_!D_hv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png</url><title>The Design System Guide</title><link>https://learn.thedesignsystem.guide</link></image><generator>Substack</generator><lastBuildDate>Sat, 31 Oct 2026 04:48:25 GMT</lastBuildDate><atom:link href="https://learn.thedesignsystem.guide/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Romina]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[romina@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[romina@substack.com]]></itunes:email><itunes:name><![CDATA[Romina Kavcic]]></itunes:name></itunes:owner><itunes:author><![CDATA[Romina Kavcic]]></itunes:author><googleplay:owner><![CDATA[romina@substack.com]]></googleplay:owner><googleplay:email><![CDATA[romina@substack.com]]></googleplay:email><googleplay:author><![CDATA[Romina Kavcic]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Half my design system metrics don't work anymore]]></title><description><![CDATA[Which metrics to keep, delete and which evals you need to set up]]></description><link>https://learn.thedesignsystem.guide/p/half-my-design-system-metrics-dont</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/half-my-design-system-metrics-dont</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sat, 24 Oct 2026 16:40:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1y0G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <strong><a href="https://www.aidesign.guide/">AI Design Guide</a></strong> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a>  </p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1y0G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1y0G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1y0G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3054803,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/221884544?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.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_!1y0G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!1y0G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6893d6d-8a75-429b-b90e-f64a944ce69e_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qYTT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 424w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 848w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 1272w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qYTT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png" width="1324" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:1324,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39733,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/221884544?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.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_!qYTT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 424w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 848w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 1272w, https://substackcdn.com/image/fetch/$s_!qYTT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9422136d-aaea-4514-bef2-1e9885a7081f_1324x300.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>Presenting new partner of the newsletter, <strong>QT Group.</strong> <a href="https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter">They are launching a webinar series for Designers.</a>  &#128197; First Webinar : <strong>Nov 5 | 3PM CET <br></strong>First one is called: <strong><a href="https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter">Why Is It a Field of Its Own and How Qt Is Tackling the Most Complex Design Challenge</a></strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VLV8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 424w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 848w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 1272w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VLV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png" width="840" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74b58d0e-029f-4183-a756-c654e21f68af_840x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173427,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.qt.io/events/designing-for-real-world-devices-why-is-it-a-field-of-its-own-and-how-qt-is-tackling-the-most-complex-design-challenge?utm_campaign=Design%202026&amp;utm_source=Design%20System%20Guide&amp;utm_medium=Newsletter&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/221884544?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.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_!VLV8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 424w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 848w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 1272w, https://substackcdn.com/image/fetch/$s_!VLV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74b58d0e-029f-4183-a756-c654e21f68af_840x470.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>4 years ago I compiled my list of useful &#128279; <strong><a href="https://thedesignsystem.guide/design-system-metrics">design system metrics.</a></strong> Well, a lot of them are not useful anymore. Not just total number of components and detachments, but many others as well.</p><p>Historically, adoption was the only metric that mattered, but today I would focus more on <strong>getting proper design system evals.</strong></p><p>We have to think about a new user. Agents read our docs every single time and we need to set up rules to see if they are doing good job or not.</p><p>How do you know if your design system works or if it is getting improved every month? How do you share with stakeholders the numbers that give you budget? If you do this right, you will be able to see your progress.</p><div><hr></div><h2>Which metrics from the list I kept</h2><p></p><p><strong>Number of Snowflakes</strong>:<br>How many one-off components you have? Not just in Figma, in code as well.</p><p><strong>New Linter Warnings</strong>:<br>Are there new violations coming up? Trend should go down.</p><p><strong>Accessibility Pass Rate</strong>:<br>What&#8217;s accessibility audit score?</p><p><strong>Support Questions and Time to Answer</strong>:<br>Since getting help from AI agents, are you faster? How much time do you need to answer design system questions?</p><p><strong>Time to Adopt a New Release</strong>:<br>How long does it take for product to run the latest version?</p><p><strong>System-wide Change Effort</strong>:<br>How much time does it take to re-brand, add new subrand or just change tokens?</p><p><strong>Interviews with Designers and Developers</strong>:<br>This one is oldie, but goldie. So simple, but very effective. You hear directly from design system users what they about it. Repeat twice a year.</p><p></p><div><hr></div><h2>Stop spending time with these metrics</h2><p>These numbers can only go up, but that&#8217;s all you find out. </p><p></p><p><strong>Total component count</strong><br>The right number of components is when there is enough of them to cover for everything you need for building your products. Some systems can have 50, some 80, but having more is not a sign of success.</p><p><strong>Installs and downloads as adoption</strong><br>Number of <em>npm </em>downloads is just a number. What are people doing afterwards is important. Are they changing the code, adding more components? Ha, you don&#8217;t know.</p><p><strong>Number of MCP calls<br></strong>More MCP call doesn&#8217;t mean your agents are doing more work, maybe they are just confused. </p><p><strong>Agents reporting their own success.</strong><br>You have to be careful with &#8220;too much&#8220; success. A lot of times it might look like everything goes smooth and only when you push back, you get a real answer. Have in mind what was you end goal with task or eval, so you can compare the results.</p><div><hr></div><h2>Update the meaning of these metrics</h2><p>These metrics are still useful, but I adjusted them a bit.</p><p></p><p><strong>Detach Rate</strong>:<br>How often are components detached? Are teams exploring new components or because the solution is not good enough. Imagine you have a multi-brand design system. The main one works great, but the number of detachments in other brands is significantly higher. What does this tell you? Maybe you did not think enough about surfaces, different icons, more complex components or just more elements.</p><p><strong>Docs page views</strong><br>Which pages are the most read? What are keywords people use when searching for something? Think about improving content, adding help, improving components, etc.</p><p><strong>Adoption by Product</strong>:<br>Which products use the system, and are they using components the way they were designed to be used? What is the problem with the design system that some teams are not using it? Do they have an old code and they would need a lot of time to update it? Treat it as a health check. </p><p><strong>Design and Code Parity</strong>:<br>Do your Figma components and coded components match in props, states and variants?</p><p><strong>Trust Pulse</strong>:<br>Get answers from design system user. Ask them if they would still use the design system it if it was optional? On the other hand, you also need to rate (and adjust) the trust levels for the agents. </p><p><strong>Contributions from other teams, suggestions from the AI</strong><br>How many contributions do you get? What kind of them? Do agents (AI tools) give you suggestions for improvements? Do you accept them? </p><p><strong>Time to First Component</strong>:<br>How long does it need to ship the first screen with the system? (human vs <strong>agent</strong>)</p><p><strong>Lead Time Against a Baseline</strong>: <br>How much faster do teams ship with the system? Compare with a baseline or a team without it, or the number means nothing.</p><p><strong>Overrides and Hard-coded Values</strong>: <br>How many style overrides and raw values sit in each product? This is your design and tech debt in one number.</p><p><strong>UI Bugs per Product</strong>:<br>How many UI and consistency bugs are reported for each product? Track the trend.</p><p><br></p><p></p><h3>Now add these to your report</h3><p></p><p><strong>Conformance by surface<br></strong>How much of your product really uses your components and tokens? </p><p><strong>Agent adherence pass rate</strong><br>How often an agent builds something that follows your rules? </p><p><strong>Cost per shippable output<br></strong>How much you really pay for something you can ship? </p><p><strong>Accessibility pass rate<br></strong>How much of your UI passes accessibility checks? Is it improving?</p><p><strong>Component friction list<br></strong>Which components don't do their job?</p><div><hr></div><h2>Setting up evals</h2><p><strong>Have in mind that having metrics look over design system health </strong>is totally different than<strong> measuring ROI</strong> or <strong>measuring the quality</strong> of the output. </p><p>The main thing today is to know if the system makes the <strong>output </strong>better and better? That&#8217;s for both users, people and agents. The output needs to be the same quality whether a person or agent prompt it.</p><p>Now we need our most needed layers again: <strong>intent + implementation.</strong> Intent tells us why and how components are use, and implementation is everything that changes over time anyway. The model, tools, skills, tokens.</p><p>To test how everything works together, we set up <strong>evaluations. </strong>In short, we call them <strong><mark data-color="#c9daf8" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);">evals.</mark></strong><mark data-color="#c9daf8" style="background-color: rgb(201, 218, 248); color: rgb(0, 0, 0);"> </mark>If these were users, we would call it user testing. </p><p>An eval is some kind of the bridge. It&#8217;s a real task, tested through our tools, models, components, scored against your intent. For task we give points. When something changes, we run it again. And again.</p><p></p><h4><strong>How do you choose your evals?</strong> </h4><p>First, go through past issues and challenges. Make a list. <br>Then write down what would hurt your production the most if an agent (or human) broke the rules/guidelines?</p><p>Create a script that will automate these tasks. You can also write a list of prompts. Run each task or prompt at least 3 times.</p><p>When you get a report, read it, check the code, check the outcomes and of course the look and feel. </p><p>The trick is to try with cheaper models as well, because in the end, you want to save the money and keep the speed. </p><p>You can start with 10-15 tasks only. </p><div><hr></div><p><strong>When you see costs going down, and pass rates up, you won&#8217;t need much math to show your design system is doing well. </strong></p><p>Enjoy the weekend. &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><h3>&#10024; Community gems &#10024;</h3><p>My friend <strong>Justine Montgomery</strong> (ex Stripe) is hosting <strong><a href="https://maven.com/justine-montgomery/ai-skills-portfolio">a new course on Maven</a> and it is all about showing your AI skills in your design portfolio.</strong> It&#8217;s a 4-hour, hands-on workshop. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://maven.com/justine-montgomery/ai-skills-portfolio" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DdUY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 424w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 848w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 1272w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!DdUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png" width="1280" height="673" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:673,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:281894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://maven.com/justine-montgomery/ai-skills-portfolio&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/221884544?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.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_!DdUY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 424w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 848w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 1272w, https://substackcdn.com/image/fetch/$s_!DdUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcc163f-12df-4c70-924b-e661123f83a4_1280x673.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4><strong>Learn more about metrics </strong></h4><p><br>&#128279; Tanya Donska, <a href="https://dnsk.work/blog/design-system-adoption-metrics-lie-measuring-installation-measuring-value">Design system adoption metrics lie</a> </p><p>&#128279; Greg Sargent, <a href="https://gregsargent.com/articles/design-system-adoption-metrics">Design system adoption metrics</a> </p><p>&#128279; Kyle Yang, <a href="https://www.kyle-yang.com/dayforce_figmaanalytics">Dayforce Figma analytics</a> </p><p>&#128279; Luis Ouriach, <a href="https://medium.com/@disco_lu/design-system-adoption-is-a-red-herring-6c6b5a504f43">Design System &#8220;Adoption&#8221; is a Red Herring</a></p><p>&#128279; Figma, <a href="https://www.figma.com/blog/design-systems-104-making-metrics-matter/">Design systems 104: making metrics matter</a></p><p>&#128279; zeroheight, <a href="https://zeroheight.com/blog/from-basic-adoption-to-meaningful-measurement-how-design-system-metrics-evolve/">From basic adoption to meaningful measurement</a></p><p>&#128279; Gusto Engineering, <a href="https://engineering.gusto.com/eval-driven-design-systems-part-2-5b989d492281">Eval-driven design systems, part 2</a></p><p>&#128279; Storybook, <a href="https://github.com/storybookjs/storybook/pull/36110">agent-eval PR #36110</a> </p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>More useful articles from me</h3><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0e675c3f-c63e-4f82-81b6-b72dccdbd06d&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / AI Design Guide / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Building blocks for design systems are still in 2016.&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-10-12T15:51:57.149Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KsxZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/building-blocks-for-design-systems&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:218300466,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:16,&quot;comment_count&quot;:0,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8a1b72e8-a160-4bd0-9ebe-04cb8a660801&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I'd build a design system if I started over in 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-09T11:59:19.321Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UYfg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F726c7543-bb4a-407f-9f14-4d1c9e81c1f1_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-id-build-a-design-system-if-i&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:183904911,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:124,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;2af461e6-e4cb-4c96-bada-8fbb1b414750&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Automate Design System Documentation&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-17T08:58:02.536Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!9dDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe9c6aa2-4c25-47ea-8c50-3c5d2d786ca1_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-to-automate-design-system-documentation&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:176234757,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:117,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[34 AI UX patterns most design systems have no components for yet]]></title><description><![CDATA[A visual catalog of agentic interface patterns]]></description><link>https://learn.thedesignsystem.guide/p/34-ai-ux-patterns-most-design-systems</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/34-ai-ux-patterns-most-design-systems</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 16 Oct 2026 17:13:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6LvV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <strong><a href="https://www.aidesign.guide/">AI Design Guide</a></strong> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a>  </p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6LvV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6LvV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6LvV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2832306,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/220565388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.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_!6LvV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!6LvV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99dbc439-fa41-4006-a6b2-8b01a66aa924_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you already have components like &#8220;approval prompt&#8221; or &#8220;tool call row&#8221;.  Don&#8217;t worry, maybe you don&#8217;t need them. But I have a longer list of new emerging components. I gathered them by using the apps, through my <strong><a href="https://www.aidesign.guide/design-systems">design system directory </a></strong>on aidesign.guide, and by spotting them on Mobbin.</p><p>The full catalog has way more, and you can find them on my website AI DESIGN GUIDE &#128279;<a href="https://www.aidesign.guide/agentic-ux-patterns?utm_source=substack&amp;utm_medium=email&amp;utm_campaign=agentic-ux-patterns-2026-10">Agentic UX patterns</a> (unfortunately, I can&#8217;t add so many images to Substack).</p><div><hr></div><p>PS. I have a <strong><a href="https://www.aidesign.guide/course">beginner-friendly <mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">LIVE</mark> AI course</a></strong> for designers in 2 weeks. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.aidesign.guide/course" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QYPW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 424w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 848w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 1272w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QYPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png" width="1324" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1324,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://www.aidesign.guide/course&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/220565388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.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_!QYPW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 424w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 848w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 1272w, https://substackcdn.com/image/fetch/$s_!QYPW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f0239f-0e4a-45f7-87e3-cbe02cc51caa_1324x454.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Let&#8217;s check the patterns now. </p><h2>Entry points</h2><h3>1. Sparkle &#10024; menu</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pjPD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pjPD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 424w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 848w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!pjPD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png" width="868" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6abba420-5049-48ee-949a-4e3030d2a487_868x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:868,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159471,&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://learn.thedesignsystem.guide/i/220565388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.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_!pjPD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 424w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 848w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 1272w, https://substackcdn.com/image/fetch/$s_!pjPD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6abba420-5049-48ee-949a-4e3030d2a487_868x450.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Confluence</em></p><h3>2. Hybrid &#8984;K palette</h3><p>With one modal, you can search or jump to a tool or assistant.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mkkS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mkkS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 424w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 848w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 1272w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!mkkS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png" width="728" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:728,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23893,&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://learn.thedesignsystem.guide/i/220565388?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.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_!mkkS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 424w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 848w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 1272w, https://substackcdn.com/image/fetch/$s_!mkkS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F935e0d92-517b-42d3-9bc2-42b89709169c_728x436.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Figma</em></p>
      <p>
          <a href="https://learn.thedesignsystem.guide/p/34-ai-ux-patterns-most-design-systems">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Building blocks for design systems are still in 2016.]]></title><description><![CDATA[Every dashboard looks the same]]></description><link>https://learn.thedesignsystem.guide/p/building-blocks-for-design-systems</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/building-blocks-for-design-systems</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Mon, 12 Oct 2026 15:51:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KsxZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <strong><a href="https://www.aidesign.guide/">AI Design Guide</a></strong> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a>  </p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KsxZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KsxZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KsxZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3408229,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.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_!KsxZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!KsxZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37405761-d344-469b-8edd-80a10edfbf9b_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s kick off this post with a quick exercise. Open any SaaS dashboard. The look and feel is mostly as it was 10 years ago. When there is no data, you see a bunch of empty cards; with data, maybe a few more charts appear. </p><p>I also opened Mobbin for dashboards and compared them. Calendly, Shopify, Framer, Semrush, Mintlify, AirOps, Sweatpals. Although they are completely different products in different industries with different price points, they all have almost the same layout. That makes sense: when people spend more time in products, they learn the layout faster.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bqEG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bqEG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 424w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 848w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bqEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png" width="1456" height="1384" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1384,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:393735,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.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_!bqEG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 424w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 848w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 1272w, https://substackcdn.com/image/fetch/$s_!bqEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F066b32b6-0f1a-4e62-9ba4-f6f1b144e450_1456x1384.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Well, <strong>a familiar layout is a kindness: </strong>it means a person can walk into a new product the way you walk into a stranger&#8217;s kitchen and still find the spoons. What troubles me is that content and blocks themselves are still stupid. </p><p>I&#8217;ve been working with design systems for more than 10 years. In that time, we have learned to name our colors properly, switch themes with a single toggle, and scale our decisions to different products faster. But with today&#8217;s technology, <strong>we still lack intent-based dashboards. </strong>These blocks do not know what they are for.</p><p>In this post, I will explain how I envision smarter products through implementing intent-based design systems. I also believe this approach is the future of building products.</p><div><hr></div><h3>A brief history of getting &#8220;default taste&#8221;</h3><p>To understand sameness and AI slop (where everything looks vibe-coded <em>ugly</em>), we need to go back in history. Defaults are coming from popular UI kits and Claude.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4ulk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4ulk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 424w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 848w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 1272w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!4ulk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png" width="1456" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58434,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.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_!4ulk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 424w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 848w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 1272w, https://substackcdn.com/image/fetch/$s_!4ulk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F668bc80a-52cd-4b7b-b889-5cc002c50fee_1456x688.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>In 2008,</strong> it was orange. jQuery shipped the orange theme, and many people simply reused it without modifying it.</p><p><strong>In 2020,</strong> it was indigo-500 from Tailwind UI. Adam Wathan chose it, and at the time it felt fresh. Then the models read the internet, and the internet was full of Tailwind-ish sites, so they followed the logic. And yep, this is where violet vibe-coded thingies are coming from. </p><p><strong>In 2026,</strong> it is beige. This is coming from Claude. I&#8217;m sure you&#8217;ve seen warm, beige backgrounds, italic serif hero, 2-color text. </p><h6></h6><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/adamwathan/status/1953510802159219096&quot;,&quot;full_text&quot;:&quot;I'd like to formally apologize for making every button in Tailwind UI `bg-indigo-500` five years ago, leading to every AI generated UI on earth also being indigo.&quot;,&quot;username&quot;:&quot;adamwathan&quot;,&quot;name&quot;:&quot;Adam Wathan&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1677042510839857154/Kq4tpySA_normal.jpg&quot;,&quot;date&quot;:&quot;2025-08-07T17:37:24.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;So, GPT-5 hasn&#8217;t solved the \&quot;purple problem\&quot;&quot;,&quot;username&quot;:&quot;kevinkern&quot;,&quot;name&quot;:&quot;Kevin Kern&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1849574174785732608/ltlLcyaT_normal.jpg&quot;},&quot;reply_count&quot;:405,&quot;retweet_count&quot;:1089,&quot;like_count&quot;:22290,&quot;impression_count&quot;:1503860,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>But why does everything look the same? Because the model just uses the average of all the screens it has seen. Even longer prompts don&#8217;t help, because models will, either way, move to the next logical design decision (or trend). There is a more detailed technical description how these things work from <a href="https://www.youtube.com/watch?v=SQMCtZX3trg">Paul Bakaus</a> on the link.</p><p>How to fight this? The first obvious thing people do is to create a bunch of markdown files with rules. &#8220;No purple gradients.&#8221; &#8220;Don&#8217;t use Inter.&#8221; But the problem will repeat with new trends. To skip generic, you need to create your own foundations and <strong>knowledge graph. </strong>And then turn that into a shareable artifact. It can be a virtual server or a shared repository.</p><div><hr></div><h3>Dashboards can&#8217;t think</h3><p>Back to those dashboards from the intro. Now let&#8217;s check concrete situations. Let&#8217;s look at the empty cards first.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1WF6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1WF6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 424w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 848w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 1272w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!1WF6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png" width="1456" height="908" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:908,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225585,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.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_!1WF6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 424w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 848w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 1272w, https://substackcdn.com/image/fetch/$s_!1WF6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f12a0e-253e-4e9e-9e23-c9a0fdbe8e12_1456x908.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Mintlify </em>shows 80% vs. previous. The number is correct, but the red color shows panic. In reality, you had five visitors last week and one this week. Nobody sensible would lose sleep over it.</p><p>Similar story with Xero, Klaviyo, and Calendly. Cards show the math behind it, but users still need to connect the dots. <strong>Does it matter? Do they need to worry? What to do next? </strong></p><p>Also, empty screens could be way more helpful. <strong>Zero is not the news here. </strong>Show users &#8220;how to get to your first visitor&#8221; or where to explore more options, connect data, etc. Be intentional and think about all intents and then improve the user experience.</p><div><hr></div><h3>Enter the assistant era</h3><p>Then came the AI boom, and products with a lot of data had (and still have) a huge advantage in making their products better and smarter. </p><p>What most of them did was introduce AI assistants. By clicking on the &#8220;stars icon,&#8221; the AI process started showing more comments about the numbers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m_ug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m_ug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 424w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 848w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!m_ug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png" width="1456" height="1630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1630,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:432434,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.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_!m_ug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 424w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 848w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 1272w, https://substackcdn.com/image/fetch/$s_!m_ug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F699b3e18-ae3c-4a31-86d5-c4c866942b1b_1456x1630.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Shopify</em> added Sidekick conversations. <em>Xero </em>added a button for &#8220;Get AI insights&#8221;. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Jhq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Jhq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Jhq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:253879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Jhq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-Jhq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa7221e1-2aeb-43b1-8d07-23b54cbdaa83_1920x1205.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So the blocks stayed exactly as they were, and the thinking went into a chat window beside them. It can feel like the product got smarter, but I expected it to give me concrete next steps: <em>what can I improve? </em>But these answers took forever, and usually they were not really helpful. Why? <strong>Lack of context.</strong></p><div><hr></div><h3>Adding more context phase</h3><p>So naturally, we gave context. More files. More folders. Just EVERYTHING we have phase. Like a worried parent packs a suitcase for every weather. This is not really helpful. </p><p><strong>If you don&#8217;t know what you are looking for, you will not get any answers.</strong></p><p>I tested this with a simple task, where an AI tool had to create a developer handoff for a button. I have a design system built on Shoelace. It had to go through 7 checks: sizes, allowed and banned variants, tokens, one primary button per screen, a confirm dialog if there is something to confirm, and slots.</p><p>Each model got the same task with three kinds of context:</p><p>&#8594; file dump (everything I have)</p><p>&#8594; facts only (deterministic)</p><p>&#8594; facts + rules </p><p>I tested the prices on October 3, and you can compare them below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q4XP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q4XP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 424w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 848w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 1272w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q4XP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png" width="1456" height="1084" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1084,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:168035,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.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_!Q4XP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 424w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 848w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 1272w, https://substackcdn.com/image/fetch/$s_!Q4XP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3437207d-adf9-4d98-b241-59acc6d24a2c_1456x1084.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>How did it go?</strong></p><p><em>Facts only</em> was the worst. Yes, it knew when to use a specific variant, but it didn't follow the rules. </p><p><em>The docs dump </em>did better (because the info was there somewhere); but it was the most expensive. </p><p><em>Facts + rules </em>passed on every model (even on the cheapest DeepSeek). For example, for Opus, swapping the docs dump for facts + rules costs two-thirds less. Those aren&#8217;t facts about the component. They&#8217;re <strong>intent</strong>.</p><div><hr></div><h3>Intent as the most underused layer</h3><p>I keep returning to one word: <em>intent</em>. With intent-based content, the cards would change based on the user&#8217;s needs. This means dashboards become personalized. Practically speaking, a manager wants to see different content than a designer. Intent can live at four levels, like the floors of a house:</p><ol><li><p><strong>Token intent. </strong>What a value is for.</p></li><li><p><strong>Component intent.</strong> How and when a component should be used. </p></li><li><p><strong>Pattern intent. </strong>How components work together, and why.</p></li><li><p><strong>Screen intent. </strong>What a whole screen is for.</p></li></ol><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;996244bc-43c0-4ae8-aaaf-d6baacfea830&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">rule: one-primary-action
applies_to: screen
check: count(Button[variant=primary]) &lt;= 1
severity: block
why: Two primary actions means nobody decided what matters.</code></pre></div><div><hr></div><h3>Intent-based dashboards</h3><p>This is the part that makes me want to stand on a chair.</p><p>When blocks carry their intent, the system can combine components and create a personalized dashboard. These rules would easily fix empty cards on <em>Mintlify, Xero, </em>and <em>Calendly.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n493!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n493!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 424w, https://substackcdn.com/image/fetch/$s_!n493!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 848w, https://substackcdn.com/image/fetch/$s_!n493!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 1272w, https://substackcdn.com/image/fetch/$s_!n493!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!n493!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png" width="1456" height="974" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:974,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133840,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.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_!n493!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 424w, https://substackcdn.com/image/fetch/$s_!n493!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 848w, https://substackcdn.com/image/fetch/$s_!n493!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 1272w, https://substackcdn.com/image/fetch/$s_!n493!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a19c1d3-e127-41c6-a283-b8b47728471a_1456x974.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Almost none of these rules are about pixels. That&#8217;s the point of intent. You write it once, and then you review it over time (based on conversion rate, product decisions, and so on).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qnuc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qnuc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 424w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 848w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 1272w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!qnuc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png" width="1456" height="1222" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1222,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124429,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.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_!qnuc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 424w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 848w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 1272w, https://substackcdn.com/image/fetch/$s_!qnuc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0aa82c5-fc64-4916-b4c7-790cc91db21b_1456x1222.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now let&#8217;s check another example. </p><p><br>Let&#8217;s give an agent a library of blocks like that and another piece of intent: <strong>what is this person trying to decide?</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_!A1Dw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A1Dw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!A1Dw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261576,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A1Dw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A1Dw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f174d00-14b5-4368-98e9-827f1b91dfa6_1920x1200.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Comparing the dashboard for a <em>finance lead vs. a support lead </em>would open the same product, but the cards would show different content. But it is still the same design system. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-R-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-R-N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 424w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 848w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!-R-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png" width="1456" height="1214" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1214,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125864,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.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_!-R-N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 424w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 848w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!-R-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6639f6d8-58cc-4285-9a2d-f1ecf3696d62_1456x1214.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The goal is to<strong> set the limits in our design system, then let agents work within</strong> them. </p><p><br>Sure, things <em>can</em> go wrong. When the finance lead and the support lead see different layouts, they might get confused (especially in the same meeting). Some users might want to see the whole picture (&#8220;admin view&#8221;) and not just a personalized view. And layouts should not just jump around with every refresh. But dashboards are just part of the story. The same intent can shape every flow in a product: onboarding that skips things you already did, empty states that are based on where you came from, an error message based on the user intent, &#8230; That&#8217;s why <strong><mark data-color="#cfe2f3" style="background-color: rgb(207, 226, 243); color: rgb(0, 0, 0);">we need to start treating intent layer not as an option, but as a default. </mark></strong></p><div><hr></div><h3>You can only enforce what you own</h3><p>Here is the catch. A rule only works if your agent can read it. </p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hctQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 424w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 848w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 1272w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!hctQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png" width="602" height="191" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/feb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:191,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37866,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.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_!hctQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 424w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 848w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 1272w, https://substackcdn.com/image/fetch/$s_!hctQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffeb9bb82-c79e-4b67-89f1-b6f22fef9da8_602x191.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The prompt isn&#8217;t where your work is, and this post from Thariq sums it up perfectly. Prompt is one thing, but your environment changes EVERYTHING. The repositories, references, context, knowledge, decisions, examples, &#8230; </p><p><strong>The less your team owns, the more your work will look like everybody else&#8217;s.</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_!a3M2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a3M2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 424w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 848w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!a3M2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75411,&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://learn.thedesignsystem.guide/i/218300466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.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_!a3M2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 424w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 848w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!a3M2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1d27962-4f2f-4090-823f-e61197cf4d52_1456x1092.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So a better question than &#8220;what is your prompt?&#8221; is &#8220;<strong>what can your agent read?</strong>&#8221;.<br>If part of your documentation is on Storybook, half on some other platform, some in Figma, and parts of it in Markdown files, then you know you have a challenge to solve. </p><p>&#8220;Renting&#8221; apps is still fine on some occasions. It does not mean you have to &#8220;vibe-code&#8221; every possible app. But if all your data lives in 3rd-party platforms and you rely only on their MCPs or APIs, you are losing time (and data, of course!) with manual work. </p><p>So what&#8217;s next for you? </p><p>Start by putting your rules in files. Pick one card/component from your dashboard. What would it say? Write down what it&#8217;s for, when a change is worth showing, and what it should say when there is no data. Then let your agent read it. </p><p>Enjoy exploring &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><p>PS. I wrote about these already, and it might help you as well &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;dd39e64b-3805-496b-8703-bb08c217a58d&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Foundations maxxing: Why your design system is not ready for AI&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-09-18T09:39:16.900Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!qK3q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/foundations-maxxing-why-your-design&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:215202752,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:35,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8ca73a61-8771-4e19-b269-4d592ed2cc39&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Self-Healing Design System&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-04-04T09:40:26.663Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!N4qr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/the-self-healing-design-system&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:193053173,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:54,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8a1b72e8-a160-4bd0-9ebe-04cb8a660801&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I'd build a design system if I started over in 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-09T11:59:19.321Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UYfg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F726c7543-bb4a-407f-9f14-4d1c9e81c1f1_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-id-build-a-design-system-if-i&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:183904911,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:124,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p><strong>Learn more and references</strong></p><p>&#128279; <a href="https://mobbin.design/">Mobbin</a> dashboard screens </p><p>&#128279; Paul Bakaus, &#8220;<a href="https://www.youtube.com/watch?v=SQMCtZX3trg">The Dark Arts of Skill Engineering</a>&#8220;, AI Engineer</p><p>&#128279; <a href="https://www.filamentgroup.com/lab/introducing-themeroller-design-download-custom-themes-for-jquery-ui">Filament Group, Introducing ThemeRoller (2008)</a></p><p>&#128279; <a href="https://x.com/adamwathan/status/1953510802159219096">Adam Wathan&#8217;s post, August 2025: </a></p><p>&#128279; Alan West, <a href="https://dev.to/alanwest/why-every-ai-built-website-looks-the-same-blame-tailwinds-indigo-500-3h2p">Why every AI-built website looks the same </a></p><p>&#128279; <a href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design launch</a></p><div class="callout-block" data-callout="true"><p style="text-align: center;">Find more helpful guides at <a href="https://www.aidesign.guide/token-audit">aidesign.guide</a></p></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Foundations maxxing: Why your design system is not ready for AI]]></title><description><![CDATA[How and why?!]]></description><link>https://learn.thedesignsystem.guide/p/foundations-maxxing-why-your-design</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/foundations-maxxing-why-your-design</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 18 Sep 2026 09:39:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qK3q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qK3q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qK3q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qK3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2694974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.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_!qK3q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!qK3q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aad3f70-71ba-4bf2-a0f3-11b5cbc813ac_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><p>As soon as you start with AI, it feels like crushing a pi&#241;ata on the first punch. Especially if you skipped the early versions of ChatGPT and got disappointed when something didn&#8217;t work. Any of your non-coder coworkers can literally get from Figma to working prototypes in minutes. So why do you feel a little sarcasm in my writing?</p><p>Because you focus too much on having a &#8220;machine-readable&#8221; design system and skip everything that should happen in between. That&#8217;s why I am foundations maxxing.</p><p>Let me explain how and WHY.</p><h4>What do I even mean by foundations maxxing?!</h4><p>Instead of spending a crazy amount of tokens (credits), let&#8217;s focus more on what our foundations are. Running wild and spending tons of tokens doesn&#8217;t mean you will create a scalable product. Without a strong foundation, you can't scale. Even if you find your perfect workflow, does it lead to a scalable product if the ground stays shaky?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pvAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pvAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 424w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 848w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 1272w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pvAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png" width="1440" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83318,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.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_!pvAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 424w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 848w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 1272w, https://substackcdn.com/image/fetch/$s_!pvAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfb93231-ae7b-4a32-94a9-a723df45c87c_1440x960.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>#1 Your design system is infrastructure</h2><p>I want to set one thing straight. <strong><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">A design system is infrastructure. </mark></strong>I see it as the API that allows AI to build your products safely. The same way your CI/CD pipeline is infrastructure. The same way your database is infrastructure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fv9m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fv9m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 424w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 848w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!fv9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png" width="1440" height="1320" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1320,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79120,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.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_!fv9m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 424w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 848w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 1272w, https://substackcdn.com/image/fetch/$s_!fv9m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe334c90-af44-4593-8312-908aec99bcb2_1440x1320.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>When anyone can generate a screen or app, the only thing that sets you apart from your competitors is the system behind it. Yes, the whole combination of brand, consistency, uniqueness, and so on.</p><p>Plus, let&#8217;s not forget that a design system directly supports business outcomes. Just developing a single page or screen becomes at least 50% faster with a design system than coding from scratch. Rules and guidelines for building with AI will speed everything up even more. So, to sell it to leadership, it is much easier to frame it as infrastructure.</p><div><hr></div><h2>#2 How I audit a design system in 2026</h2><p>Before you even think about making your design system machine-readable, you need to do an audit. I know, it is boring; it takes time, but it will give you insights you've never thought of.</p><h4>My process:</h4><p>&#8594; Go through libraries.<br>Check design tokens (Figma variables). Dig in for hidden layers, applied tokens, raw hex colors. Check whether scopes are applied correctly and whether any unwanted layers, variables, or themes show up in Figma.</p><p>&#8594; <strong>Review components</strong> and check if you can have fewer variants, what you can optimize, etc.</p><p>&#8594; Check the <strong>code </strong>and compare hard-coded stuff. Use linters.</p><p>&#8594; Read the <strong>docs and decisions.</strong></p><p>&#8594; Read <strong>.md files,</strong> use them, compare results. Are there any useful machine-readable docs? What is there? You can use them as a starting point for your knowledge graph.</p><p>&#8594; <strong>How are things shared across the teams?</strong> How are others designing and using AI? What&#8217;s their process and tech stack? This step is especially important if you work in large companies where each team tends to have its own processes.</p><p>&#8594; What&#8217;s up with <strong>accessibility?</strong> Dig in and make a report.</p><p>&#8594; Review the <strong>design &lt;&gt; development </strong>workflows and governance.</p><p>You can also start by pointing an agent to your Figma file, docs, or code and let it compare, count the drift, find detached components, ... and then, after you get a report, you can decide and prioritize what to fix first.</p><p>&#8594; Send out the <strong>survey </strong>to get the pulse from different teams. Include developers, product design, and the design system team. You need to hear different perspectives. </p><p></p><h4>Useful tools</h4><p>I use a variety of tools, but these are my most used:</p><p><strong>Playwright:</strong> screenshots your product in every state; it&#8217;s free;</p><p><strong>Figma MCP:</strong> connect Figma with your AI tool and share everything about variables, components, descriptions</p><p><strong>Tidy Core</strong> (my plugin): finds detached instances, ghost variables, naming, Figma-to-code parity;</p><p><strong>Claude Code, Cursor</strong> or any other AI tool for building</p><p><strong>GitHub MCP:</strong> reads code</p><p><strong>Storybook</strong>: your library of all the components</p><p><strong>Style Dictionary:</strong> reads the pipeline</p><p><strong>PostHog MCP:</strong> reads usage</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pgkf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pgkf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pgkf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png" width="1440" height="1184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99557,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.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_!Pgkf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 424w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 848w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!Pgkf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2cdafd5-fb96-4e7d-b3ac-432495148768_1440x1184.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/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"></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><h4>Checklist before you connect an MCP</h4><p>The audit report should fit on one page. Add straight-to-the-point observations that serve as a checklist for next steps. Nobody will read loooong report, everyone just wants to know "what's next!".</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mtLe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mtLe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 424w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 848w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!mtLe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png" width="1456" height="1256" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1256,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90934,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.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_!mtLe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 424w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 848w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 1272w, https://substackcdn.com/image/fetch/$s_!mtLe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F885c1ef6-3223-43c1-9919-e4d2de088fd9_1456x1256.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>#3 Time to fix or prepare the foundations</h2><p></p><p><strong>1. Set up design token naming structure.</strong> A useful tool here is &#128279; <strong><a href="https://www.namedesigntokens.guide">Name Design Tokens Builder</a>. </strong>You can also use AI tools like Cursor or Claude and create a set of tokens based on your preferred naming structure. If you need inspiration on how others do it, &#128279; <strong><a href="https://www.aidesign.guide/design-systems">check my database of design systems </a></strong>and explore them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7jRA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7jRA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 424w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 848w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!7jRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png" width="1456" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:579553,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.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_!7jRA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 424w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 848w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!7jRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e72804d-4dc4-4b48-92d6-cf22b0415167_3022x1722.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>2. Add descriptions to your components</strong><br>You can do it manually or kick-start this process with AI. Just prompt it: &#8220;add descriptions to my Figma files&#8221;.</p><p><strong>3. Create .md files</strong><br>Describe the components, variants, usage, and relationships between them. Include everything agents need to know, and anything helpful for building screens. I already wrote about this, so you can read a detailed article.</p><p><strong>4. Semantic binding rule</strong></p><p>Components need semantic or component tokens (depending on your design token logic). If you use <em>color.action.primary</em> for all primary actions, agents will know this token is used across themes for every primary action. <br>But be careful. Also define scopes. Sometimes I find border design tokens applied to background, text on icons, and so on. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZBo5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZBo5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 424w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 848w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 1272w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZBo5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png" width="1440" height="784" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:784,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65562,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.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_!ZBo5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 424w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 848w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 1272w, https://substackcdn.com/image/fetch/$s_!ZBo5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb509d68-82e7-487e-be78-eadaeb2e9765_1440x784.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>5. Decision log</strong></p><p>The decision log is a document with all your tiny decisions about what you chose instead of X. Keep it short, straight to the point, and share it with your agents in your folder (ideally knowledge graph). Write what happened that day, why, who was involved, and date it. So next time someone wants to change a dialog design, you have a decision and a reason why it&#8217;s not a good idea (for example).</p><p>This also creates timestamps for understanding analytics better.</p><p><strong>6. Pipeline to code</strong></p><p>You need to connect your Figma to your code. If you have an Enterprise plan, it is much easier, since the API exposes Figma Variables directly. If not, you still have plenty of options to make it work. I use my own Tidy MCP (you can get Tidy Core here). There is also an unofficial <strong>Figma Console</strong> from <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TJ&quot;,&quot;id&quot;:185349443,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f5d9149-d097-4830-9ac3-54a14c5e13a7_3750x3750.jpeg&quot;,&quot;uuid&quot;:&quot;749f0855-708b-488c-9e4d-df5fd84ad786&quot;}" data-component-name="MentionToDOM"></span>. The next step is setting up a pipeline that turns variables into CSS variables (Style Dictionary or your own script).</p><p><strong>7. MCP<br></strong><em>I already wrote about the knowledge graph, so I will only share the basics here. </em></p><p><br>If you haven&#8217;t yet, first connect either Figma MCP, Tidy Core, or Figma Console to the repo. Then start by adding other MCPs. I use Granola, GitHub, PostHog, &#8230; Add whatever is <span data-color="#ff0000" style="color: rgb(255, 0, 0);">SAFE</span>. Do not share info that is not allowed inside the org. <br>Do not forget to connect your .md files. You also need to feed CLAUDE.md with your rules. We call that your agent&#8217;s harness. </p><p></p><div><hr></div><h2>#4 Respect devs, because they know their sh**</h2><p>Just last month, a product manager opened<strong> 114 PRs.</strong> Wow, let&#8217;s give him a high 5. NOOO! Not just that. Development teams got around 60% more PRs than in a record month last year. And who reviews those [N] PRs? And when?</p><p>I know we all love self-initiative people and ideas. But they were not trained as UX designers; they don&#8217;t have years of experience, not in design, nor in testing. They don't know how design systems work and usually skip existing components because they feel restricted. You do not want this. Ever.</p><p>What happens next is that you put all the pressure on developers, who then become cleaners and have to review all the PRs. &#129760;</p><p>Instead of focusing on quality code, they review lines of gibberish. And again, instead of talking about improvements, we start talking about what should be there in the first place, what the initial problem was, and how components should be used. </p><p>That is step one, c&#8217;mon.</p><div><hr></div><h2>#4 Collaborate, talk, discuss</h2><p>Not long ago, kick-off meetings, longer (UX) sessions, and weekly reviews were totally normal. Today we are only talking about speed. &#8220;<em>Okay, so this can be done by tomorrow?</em>&#8221;, &#8220;<em>Just ask AI!</em>&#8221; Okay, the benefit is that we finally realized longer meetings serve no one, but that doesn't mean we should skip them entirely. </p><p>I see skipping meetings as a shortcut to using only AI. </p><p>Product is people. By skipping discussions, the collaborative part of building the product, you are also skipping the needs of people. AI is capable, but it does not know or can&#8217;t predict things that you and YOUR USERS experience along the way. </p><p></p><h2>#5 UX first, UI second</h2><p>Imagine people who have never worked with user experience and have no prior knowledge can now create apps, screens, decide, and prioritize content. Feels insane. Instead of making UX better and better, you end up arguing who is &#8220;more&#8221; right. So all the time gained with AI is suddenly lost in explaining UX 101 and design principles. Who is measuring this??</p><blockquote><p><strong>Change is the only constant, but not in UI.</strong></p></blockquote><p>I know there is a tendency to say, &#8220;it can be reverted fast,&#8221; but users aren't ready to play with your UI experiments every day. Consistency exists for a reason.</p><p>I don&#8217;t want to pretend AI isn't useful for user experience. IT IS! You can use AI to get feedback from multiple streams in seconds. Connecting analytics tools, support tools, and just using MCP or API to get metrics in real time feels like a superpower. It&#8217;s way easier and faster to prioritize user problems and improve them. And yes, this is how I imagine integrating AI for the UX. </p><div><hr></div><h2>Time to do it yourself</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oIA-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oIA-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 424w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 848w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 1272w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!oIA-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png" width="1440" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:33210,&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://learn.thedesignsystem.guide/i/215202752?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.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_!oIA-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 424w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 848w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 1272w, https://substackcdn.com/image/fetch/$s_!oIA-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F53002d01-e922-4b7b-b7a2-071ef3cad59e_1440x680.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Every story I shared today has one thing in common. People who are SKIPPING the steps. So the next time your super enthusiastic &#8220;no-code builder&#8221; creates a PR introducing shitty new styles, just send him this article. Engage with your team and strive for constructive discussions. Soon, you should see the gaps. </p><p>You know how the famous saying goes: &#8220;Trust me, I&#8217;m a designer. &#8220;&#128517;</p><p>Enjoy exploring &#128588;</p><p></p><p>PS. Would love to hear your stories about emerging PR&#8217;s :) </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">The Design System Guide is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How I actually use Tidy MCP]]></title><description><![CDATA[An AI agent, Plugin API code, a 30,000-node Figma file: ten workflows]]></description><link>https://learn.thedesignsystem.guide/p/how-i-actually-use-tidy-mcp</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/how-i-actually-use-tidy-mcp</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Tue, 08 Sep 2026 14:55:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dNqx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://www.aidesign.guide/">AI Design Guide</a> <strong>(NEW)</strong> / <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dNqx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dNqx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dNqx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2742368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.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_!dNqx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!dNqx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0d5c923-faf4-4b5b-8197-ac58589b13a6_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I spent the last six months running an AI agent inside a 30,000-node Figma file. I can now tell you which jobs it earns.</p><p>Tidy is the Figma plugin and MCP server I built for design system work. It exposes 105 tools to Claude Code: audits, variable CRUD, dependency graphs, screenshots, and a raw <code>execute</code> tool that runs arbitrary Plugin API code in the live file. On paper that sounds like a toybox. In practice, a client engagement decides fast which tools matter, because a real migration punishes everything that wastes your time.</p><p>I tried to visualize how I see my superpowers agent Tidy &#128517;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q7ta!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q7ta!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q7ta!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png" width="244" height="244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:244,&quot;bytes&quot;:1111364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.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_!Q7ta!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7ta!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8b2b8f-366e-4908-9fc6-3f1814cd73ae_1024x1024.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, let&#8217;s move to ten workflows, and for each one, how to run it on your own file. </p><div><hr></div><h2>Delete a token family and prove nothing broke</h2><p>Deleting tokens is where maintainers freeze, because<strong> Figma </strong>gives you <strong>no &#8220;who uses this&#8221; </strong>answer at deletion time, and a careless delete leaves broken aliases you find weeks later.</p><p>I retired a legacy background family of about two dozen tokens behind the gate below, zero tombstones left behind (a tombstone is an alias or binding that still points at a variable that no longer exists). An earlier, pre-agent deletion in the same engagement left dozens of them, and cleaning that up cost a session.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y38M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y38M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 424w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 848w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 1272w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y38M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png" width="1080" height="656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:656,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65467,&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://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.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_!Y38M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 424w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 848w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 1272w, https://substackcdn.com/image/fetch/$s_!Y38M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F426791e3-66da-4a36-a7c9-cf524203ea3b_1080x656.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the workflow I would not run on a plain script, and the reason the open source <strong><a href="https://github.com/rominak/tidy-core">tidy-core</a></strong> (basic version of the Tidy) exists, so it goes first. <strong>Figma&#8217;s own MCP server</strong> reads variables and cannot delete one. The Plugin API deletes a variable that is still in use without a check: the layers keep painting the last value, the aliases that pointed at it become tombstones, nothing on the canvas looks wrong, and the token export breaks weeks later. A script the agent writes will count consumers first if you asked it to, differently each time, and one day you will not ask. tidy-core cannot issue a hash for a delete while a consumer remains. The safety is in the tool, not in the prompt.</p><p>Plugging it in takes about twenty minutes and no build step. In Claude Code it is one line in the terminal:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;43b84280-ef0b-448b-b9fb-e425ebaf7416&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">claude mcp add tidy-core -s user -- npx -y tidy-core</code></pre></div><p>In <strong>Cursor, Windsurf or Claude Desktop</strong>, add the same server to the app&#8217;s MCP settings file, which for Cursor is <code>~/.cursor/mcp.json</code>, then fully quit and reopen the app:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;584e4450-3658-4c73-b53f-84e034a62d48&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{ "mcpServers": { "tidy-core": { "command": "npx", "args": ["-y", "tidy-core"] } } }</code></pre></div><p>The server fetches itself the first time it starts. Figma needs one more piece, a small plugin that lets the server see inside your file. <strong>Download </strong>the repo as a ZIP, then in Figma Desktop go to Plugins, Development,<strong> Import plugin from manifest,</strong> and pick <code>plugin/manifest.json</code> from the unzipped folder. By the way, I suggest you put it in the folder where you usually store your &#8220;Coding&#8221; experiments. </p><p>Run it and it finds the server on its own. Ask your assistant &#8220;Check tidy status&#8221; and it should name the file it is connected to. The repo&#8217;s getting-started guide walks the same steps in more detail, for people who have never set up an MCP server.</p><p>Now open the library file and ask for the deletion straight out:</p><blockquote><p><em>Plan deleting every token under legacy/bg. Intent: retire the legacy background family, replaced by color/background.</em></p></blockquote><p>It comes back blocked. No hash, one line per token, and the counts are read from the live file:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;f0bd1091-9a4b-457a-b879-16d9ef0ec28b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{
  "status": "blocked",
  "planHash": null,
  "estimatedBudget": { "aliasReferences": 14, "nodeBindings": 212, "bindingsExact": true },
  "risks": [
    { "level": "blocking", "message": "\"legacy/bg/default\" is still used in 31 places (2 alias references, 29 layer bindings). Deleting it breaks them. Repoint them first with aliasVariable." }
  ],
  "nextStep": "This plan cannot be applied. Resolve the blocking risks above and build a new plan. No hash was issued."
}</code></pre></div><p>That refusal is the whole product. The blocked list is also your migration to-do, token by token. Alias references you repoint with tidy-core itself, one plan per consumer, value-preserving so nothing shifts:</p><blockquote><p>Point every token that aliases legacy/bg/default at color/background/default, in both modes.</p></blockquote><p><strong>Layer bindings are node-level,</strong> which is not one of the six operations, so those move with the count-and-rebind snippet in the next section, or with any bridge that runs Plugin API code. Then plan the delete again. The counts come back from the file as it is now, not as it was:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;6f5d0228-09f8-40c4-89f1-fe90aaa91600&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">
{ "status": "ready", "planHash": "3f9c2a1b04e7...", "estimatedBudget": { "aliasReferences": 0, "nodeBindings": 0, "bindingsExact": true }, "risks": [], "nextStep": "To execute: tidy_apply with planHash \"3f9c...\" and confirm: true." }</code></pre></div><p><strong>Save a named Figma version yourself,</strong> then apply with a reason:</p><blockquote><p>Apply that plan. Legacy background family retired, replacement live since the July restructure.</p></blockquote><p>The intent becomes the subject of a decision entry, that sentence becomes its rationale, and the tool writes the entry itself. If anyone touched one of those tokens between plan and apply, it stops and tells you what moved. A plan also expires after an hour, so a review from Tuesday cannot delete on Thursday. The plan that finally got a hash is the receipt: zero tombstones by construction, not by sweep.</p><p>One thing no single-file tool can see, and the case that bites. Your tokens live in a Foundation file and every component that uses them lives in a Components file. Open Foundation, plan the delete of legacy/bg, and the count comes back zero, because those 212 layer bindings are in Components, and a file cannot see the bindings inside another file. tidy-core issues the hash. <em>The delete runs.</em> Every one of those layers keeps painting its last value, and the export breaks a month later. That is the exact shape of the deletion that bit me: verified clean in the foundation file, dozens of tombstones in the components master.</p><p><strong>So before you delete from a library,</strong> open the file where you have components in Figma. It needs to be a desktop app! Run the plugin there, and count bindings to the library token with the snippet in the next section. </p><p><strong>tidy-core</strong> cannot do that count for you yet, because a plan only resolves the variables a file owns. It is the one place this gate still needs you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bn-c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bn-c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 424w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 848w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 1272w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bn-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png" width="1080" height="444" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:444,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121250,&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://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.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_!Bn-c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 424w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 848w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 1272w, https://substackcdn.com/image/fetch/$s_!Bn-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82baf6bf-1934-498b-9544-d4f3675b8f92_1080x444.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>What the gate enforces, in order, whichever tool you use:</strong></p><ol><li><p>Find everything that still uses the old tokens, in every file that consumes them.</p></li><li><p>Move each of those onto the replacement token, keeping the same values so nothing shifts visually.</p></li><li><p>Check that nothing points at the old family anymore: no components, no aliases, no stray bindings. Every count must read zero.</p></li><li><p>Only then delete.</p></li><li><p>Sweep once more for broken references, and keep that zero as your receipt.</p></li></ol><p></p><h3>#2 Repoint thousands of bindings in one session</h3><p>The client&#8217;s component master file had accumulated years of legacy references (I call them ghost variables): tokens from a superseded collection, primitives bound where semantics belonged, renamed tokens that never propagated. Cleaning that by hand means clicking through instances one at a time. Nobody ever finishes that job. It just stops when the person assigned to it burns out.</p><p>With the MCP connected, the same job is a loop: scan every node, match each stale binding to its current target, rebind, verify. One session repointed about 2,400 bindings with zero errors. A separate sweep earlier that week moved over ten thousand paint bindings off stale cached records. The whole file, not a sample.</p><p>Two things made this safe rather than reckless.</p><p>I<strong> made the agent count bindings, not variables. </strong>An early estimate said &#8220;a couple dozen direct primitive bindings to fix.&#8221; The real number, once the agent counted actual node bindings instead of distinct variables, was over 3,500. If you scope a migration by variable count, you will underestimate the work by two orders of magnitude and blow the budget you promised the client.</p><p>I made it verify end state, never trust a zero-error return. Figma&#8217;s <code>setBoundVariable</code> silently does nothing on text-node typography fields. It returns no error. It changes nothing. The file had nearly a thousand letter-spacing bindings that a first pass &#8220;fixed&#8221; without touching, because text nodes need <code>setRangeBoundVariable</code> instead. Since then, every bulk write ends with a re-scan that counts what is actually bound now, and only that count gets reported to the client.</p><p>To run this on your file, pick one legacy family, not &#8220;everything,&#8221; and start with the count:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;fd0dfd96-bf75-41e1-a376-e464359033ea&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">// count every binding to tokens from a legacy family (here: "legacy/")
const hits = [];
for (const node of figma.currentPage.findAll(() =&gt; true)) {
  for (const [prop, b] of Object.entries(node.boundVariables ?? {})) {
    for (const ref of Array.isArray(b) ? b : [b]) {
      if (!ref?.id) continue; // componentProperties nests its aliases one level deeper
      const v = await figma.variables.getVariableByIdAsync(ref.id);
      if (v?.name.startsWith("legacy/")) hits.push({ node: node.name, prop, token: v.name });
    }
  }
}
console.log(hits.length, hits.slice(0, 20));</code></pre></div><p>That number is your real scope. Write the old-to-new mapping as a table, get it approved, checkpoint, let the agent run the rebind loop, then run this same count again. The migration is done when it prints zero, and not before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gON4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gON4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 424w, https://substackcdn.com/image/fetch/$s_!gON4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 848w, https://substackcdn.com/image/fetch/$s_!gON4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 1272w, https://substackcdn.com/image/fetch/$s_!gON4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!gON4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png" width="1080" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70031,&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://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.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_!gON4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 424w, https://substackcdn.com/image/fetch/$s_!gON4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 848w, https://substackcdn.com/image/fetch/$s_!gON4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 1272w, https://substackcdn.com/image/fetch/$s_!gON4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2a557ad-6d0f-4d75-8fa7-3145ecd9e471_1080x450.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p></p><h3>#3 Extra themes in the picker mean a stale import record</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ws0W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ws0W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 424w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 848w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 1272w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ws0W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png" width="455" height="260" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/affbc867-4237-4693-82d9-324163944842_455x260.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:260,&quot;width&quot;:455,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22797,&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://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.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_!ws0W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 424w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 848w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 1272w, https://substackcdn.com/image/fetch/$s_!ws0W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faffbc867-4237-4693-82d9-324163944842_455x260.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This one is my favorite, because no amount of clicking would have solved it.</p><p>You switch a frame&#8217;s appearance and the picker offers more themes than your system has: Light, Dark, and then some extra themes. Nobody on the team ever created a theme called &#8220;Theme Neon&#8221;. The obvious guess, a duplicate collection, was wrong. The file referenced one collection through two import records (an import record is the file-local copy Figma keeps of a library collection once you have used it), and the second record survived on a handful of invisible anchors.</p><p><strong>The agent swept bindings first. </strong>Zero stale bindings. Picker still broken. Then explicit mode pins. Fixed nearly a hundred of those. Picker still broken. The real anchors turned out to be things a human cannot see in the UI at all: a handful of ghost tokens flagged hidden-from-publishing but still bound in the file, and two dozen superseded variable records inside the current collection, same name, same collection, older internal id, still aliasing the dead record.</p><p>You detect those by re-importing every remote variable by key and comparing ids. If the fresh import comes back with a different id than the one bound in your file, you found a zombie. Collection-level audits report these as clean, because the collection id matches.</p><p>Once the last alias anchor died, the extra themes fell out of the picker on their own. The sweep went through node bindings, mode pins, styles, prototype reactions, and cached import records. Five layers, and the bug lived in the fifth. That is the kind of investigation an agent with file-wide read access finishes in an afternoon and a human never starts.</p><p>If your picker shows themes nobody created, hunt in this order, cheapest first: node bindings, explicit mode pins, styles, prototype reactions, and only then the cached import records. The first four are ordinary scans your agent can write from this description. The fifth needs the id comparison:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;f9824f29-5814-4d94-a774-aee8ad29bd91&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">// collect every library variable bound on the page, re-import each by key,
// and flag the ones whose fresh import comes back with a different id
const bound = new Map();
for (const node of figma.currentPage.findAll(() =&gt; true)) {
  for (const b of Object.values(node.boundVariables ?? {})) {
    for (const ref of Array.isArray(b) ? b : [b]) {
      if (ref?.id &amp;&amp; !bound.has(ref.id)) bound.set(ref.id, await figma.variables.getVariableByIdAsync(ref.id));
    }
  }
}
for (const v of bound.values()) {
  if (!v?.remote) continue;
  const fresh = await figma.variables.importVariableByKeyAsync(v.key);
  if (fresh.id !== v.id) console.log("zombie:", v.name, v.id, "&#8594;", fresh.id);
}</code></pre></div><p>Rebind everything the zombie check flags onto the fresh imports, and the extra themes disappear on their own.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6a__!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6a__!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 424w, https://substackcdn.com/image/fetch/$s_!6a__!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 848w, https://substackcdn.com/image/fetch/$s_!6a__!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 1272w, https://substackcdn.com/image/fetch/$s_!6a__!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!6a__!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png" width="1080" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67083,&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://learn.thedesignsystem.guide/i/214119325?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.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_!6a__!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 424w, https://substackcdn.com/image/fetch/$s_!6a__!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 848w, https://substackcdn.com/image/fetch/$s_!6a__!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 1272w, https://substackcdn.com/image/fetch/$s_!6a__!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ea43502-9500-49bc-884c-7453ee8686df_1080x567.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h3>#4 Rename 2,000 tokens with a way back</h3>
      <p>
          <a href="https://learn.thedesignsystem.guide/p/how-i-actually-use-tidy-mcp">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[50 design token files, one problem: your agents can't read the meaning]]></title><description><![CDATA[Plus the Agentic Design Platform launch ***]]></description><link>https://learn.thedesignsystem.guide/p/50-design-token-files-one-problem</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/50-design-token-files-one-problem</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 19 Jun 2026 14:15:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9EBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a> </p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9EBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9EBo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9EBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1386735,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.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_!9EBo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!9EBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24b82ad8-247c-4dfe-9f9f-c3cbd04ab453_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>I have to start this email with amazing news. Almost two weeks ago, I launched the </span><strong><span>Agentic Design Community + Guide.</span></strong><span> &#129395;&#10024;I rolled it out in batches to everyone on the waiting list. Thank you to everyone who has already sent feedback. </span></p><p><strong><span>What is inside:</span></strong><br><span>* 87 guides on token pipelines, Figma MCP, Claude Code, and component audits (growing weekly)</span><br><span>* 33 production prompts</span><br><span>* 9 suggested learning paths, including a beginner setup that takes you from zero to a working AI workflow</span><br><span>* 26 templates and checklists</span><br><span>* A directory of 158 real design systems, from Netflix to Porsche</span><br><span>* 40 honest tool comparisons, no affiliate links</span><br><span>* Free tools like the Style Explorer and Trust Levels Playground</span><br><span>* Live sessions</span><br><span>* Free, helpful tools</span><br><span>* and so on </span><br><br><span>It updates weekly. &#127744;</span><br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://aidesign.guide/&quot;,&quot;text&quot;:&quot;Join for free here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://aidesign.guide/"><span>Join for free here</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AOWo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AOWo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 424w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 848w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 1272w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AOWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:683331,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.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_!AOWo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 424w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 848w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 1272w, https://substackcdn.com/image/fetch/$s_!AOWo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef238d8d-5ab3-48c7-8d04-d0b7f43207aa_2958x1658.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>And now to design tokens. </p><p>I thought design tokens would be the easiest design system data for AI agents to use.</p><p>They are already structured, they already live in JSON, and they already move between Figma and code. So I read the token files of 50 design systems to see how ready they really were.</p><p>I found two things I had not expected. They are far more different from each other than I assumed, and most of them tell an agent <strong>what a value is without telling it what the value means.</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_!miu0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!miu0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 424w, https://substackcdn.com/image/fetch/$s_!miu0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 848w, https://substackcdn.com/image/fetch/$s_!miu0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 1272w, https://substackcdn.com/image/fetch/$s_!miu0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!miu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png" width="1440" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47432,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.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_!miu0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 424w, https://substackcdn.com/image/fetch/$s_!miu0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 848w, https://substackcdn.com/image/fetch/$s_!miu0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 1272w, https://substackcdn.com/image/fetch/$s_!miu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98649780-5722-46c1-a750-3ac93161fcf9_1440x640.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Okay, why this difference matters? A token file can be perfectly valid for a build pipeline and still be thin context for an AI agent. The pipeline needs to turn <code>color.red.500</code> into a usable value. The agent needs to know whether that red is for danger text, destructive buttons, error borders, alert backgrounds, brand moments, charts, or something that should never be used directly. Those are different jobs.</p><h2>Readable is not the same as usable</h2><p>Design system teams have spent years making tokens machine-readable. That was the right step. Agent-ready data just asks for something on top of it. It asks:</p><ul><li><p>What does this token mean?</p></li><li><p>When should it be used?</p></li><li><p>When should it not be used?</p></li><li><p>Is it deprecated?</p></li><li><p>Which component or state depends on it?</p></li><li><p>Which decision created it?</p></li><li><p>Which platform does it map to?</p></li></ul><p>Without that layer, the agent can still read the file. It just has to guess.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_U3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_U3b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 424w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 848w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 1272w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!_U3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png" width="1440" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69601,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.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_!_U3b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 424w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 848w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 1272w, https://substackcdn.com/image/fetch/$s_!_U3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fc298cd-8e7d-442c-a5b1-6c706aa349da_1440x860.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Say an agent needs a danger color. It finds <code>red.500</code>. Nothing in the file says that red means danger, so it might reach for the same red on a disabled button or a decorative chart. The file gave it a value, not a reason.</p><p>These files were built to compile, and they compile beautifully. Explaining themselves to an agent is a newer job, and most were designed before that job existed.</p><h2>How I looked at this</h2><p>I read the public token files of 50 design systems and then used AI to compare the real source an agent would load, not the polished documentation. </p><p>For every system I gathered the same four things:</p><ul><li><p>Where the tokens live, and in what format.</p></li><li><p>How many tokens there are, by category: color, typography, spacing.</p></li><li><p>How the tokens are named.</p></li><li><p>What meaning the file carries.</p></li></ul><p>The same data for all fifty, so the comparison is fair. I counted from the raw files: where a system ships every shade in code, I counted every shade, and where a system keeps spacing in a build script, I went and counted that too.</p><div class="callout-block" data-callout="true"><p>The full dataset, every system with its format, location, counts, and meaning layer, is published at <strong><a href="https://www.aidesign.guide/token-audit">aidesign.guide/token-audit</a>. </strong></p></div><h2>Where the tokens actually live</h2><p>The first thing I learned is that there is <strong>no standard place</strong>, and no standard format. I found at least eight formats in active use:</p><ul><li><p>DTCG JSON (Primer, GitLab, Backpack, NL Design System)</p></li><li><p>Style Dictionary JSON (Workday, PatternFly, Gestalt, Orbit, Pharos)</p></li><li><p>Theo YAML (Salesforce, Twilio, Nord)</p></li><li><p>Plain JSON (Suomi.fi)</p></li><li><p>TypeScript objects (Carbon, Polaris, Fluent, Ant, Chakra, Base Web, Cloudscape, Mantine, Elastic, Braid, Grommet, Forma 36, Theme UI, Australian GOLD)</p></li><li><p>CSS custom properties (Radix, Open Props, Vibe, Shoelace, Decathlon Vitamin)</p></li><li><p>SCSS maps (Material, Liferay Clay, Bootstrap, Foundation, Bulma, Vanilla, GOV.UK, Semi, parts of USWDS)</p></li><li><p>LESS or CSS variables compiled from it (Stack Overflow Stacks, TDesign, Arco)</p></li></ul><p>Some live where you would not expect. Adobe moved Spectrum&#8217;s tokens to a repo called <code>spectrum-design-data</code>, Shopify keeps the Polaris tokens inside <code>polaris-react</code>, and GitLab ships its tokens inside the <code>@gitlab/ui</code> package.</p><p>Knowing where the tokens live is the kind of thing you would tell a new teammate on day one. An agent needs the same pointer. Here is the map.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!alxS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!alxS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 424w, https://substackcdn.com/image/fetch/$s_!alxS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 848w, https://substackcdn.com/image/fetch/$s_!alxS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 1272w, https://substackcdn.com/image/fetch/$s_!alxS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!alxS!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png" width="1200" height="1909.6153846153845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:2317,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:763166,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!alxS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 424w, https://substackcdn.com/image/fetch/$s_!alxS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 848w, https://substackcdn.com/image/fetch/$s_!alxS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 1272w, https://substackcdn.com/image/fetch/$s_!alxS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a14389-80d3-4335-b579-0aaadc4417d7_1840x2928.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How big is a design token system</h2><p>There is no standard size either. But before the numbers, the lens that makes them mean something: every count in this section measures the same thing. How many decisions the system makes for you, versus how many it leaves to you. A small scale is an opinion. A large scale is a palette. Neither is wrong, but each one changes what a consumer of the system, human or agent, has to figure out alone.</p><p>Take spacing, the simplest scale.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SC__!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SC__!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 424w, https://substackcdn.com/image/fetch/$s_!SC__!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 848w, https://substackcdn.com/image/fetch/$s_!SC__!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!SC__!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SC__!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png" width="1440" height="1208" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1208,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125487,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.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_!SC__!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 424w, https://substackcdn.com/image/fetch/$s_!SC__!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 848w, https://substackcdn.com/image/fetch/$s_!SC__!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!SC__!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc84f322c-4128-4f90-8fbc-af3e1cc6ab05_1440x1208.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The median is about 12 steps, and most systems land between 8 and 15. Mantine ships 5, Open Props ships 74.</p><p>Read those two extremes through the delegation lens. <strong>Mantine&#8217;s </strong>5 steps mean a designer, a developer, or an agent picking spacing has five options and will be consistent almost by accident. <strong>Open Props&#8217; </strong>74 steps mean every gap on every screen is an open decision, and an agent facing 74 unlabeled options is a drift generator. Every step past what you can name and explain is a choice somebody will eventually get wrong. The field&#8217;s median of 12 is a usable benchmark: count your spacing tokens, see where you sit, and ask how many of them you could write a usage rule for.</p><p><strong>Material Design</strong> is the strangest case. The M3 spec defines a full spacing scale, 18 tokens from <code>md.sys.spacing.0</code> to <code>md.sys.spacing.900</code>, right there on the documentation site. But material-web, the shipped code an agent would actually load, carries none of them: its token folder has sys files for color, elevation, motion, shape, state, and typescale, and no spacing file. The scale exists on paper. In the file, it does not. Which is this post&#8217;s whole argument in one system.</p><p>Material is not the only one. A whole class of systems does the same, especially component libraries. Tailwind, MUI, Tamagui, Element Plus, Naive UI, and PrimeVue all treat spacing as a base unit times a multiplier, or tie it to component sizes, rather than a list of named steps. It is a common and reasonable pattern. It just is not something an agent can read off the file as tokens.</p><p><strong>Now typography. </strong>The median system ships about 25 typography tokens, and the range is enormous.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YuTI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YuTI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 424w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 848w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YuTI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png" width="1440" height="1208" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1208,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134628,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.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_!YuTI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 424w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 848w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!YuTI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ee9b5c6-f398-40f5-946b-51429cb4d408_1440x1208.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Backpack </strong>ships 10, and none of them are font sizes. Its sizes live in compiled code rather than the token file.</p><p><strong>Adobe Spectrum</strong> ships 312. It splits every type role into size, weight, line height, family, and script, with separate sets for CJK and serif.</p><p><strong>The Guardian </strong>ships 100, a named preset for nearly every combination of family, weight, style, and size, built from only 12 underlying sizes. The NL Design System ships 113, most of them scoped to a single component.</p><p>This is the delegation lens again, sharpest in typography: presets are pre-made decisions, atoms are homework. <strong>The Guardian</strong> pre-decided every valid combination, so nobody, human or agent, can compose an invalid one; the count is high because the decisions are already made. Spectrum ships the atoms and trusts you to combine them well; the count is high because the decisions are still open. Same number, opposite meaning, which is why the count only makes sense once you ask what it delegates.</p><p>Neither approach is wrong. A <strong>312-token</strong> system and an 11-token system are answering different questions.</p><p>So &#8220;a design token system&#8221; can mean 10 tokens or 312 for the same job.</p><p><strong>Color is the least comparable number </strong>(for me)<strong>,</strong> because some systems publish every shade and some publish only the few they use. Theme UI&#8217;s starter preset ships 5 and expects you to add your own. Fluent and Radix run past 600.</p><p>The number that matters is the semantic layer, the named roles an agent actually reasons over. There, the range is just as wide. Nord exposes 57. Polaris exposes 226. PatternFly exposes 342. Atlassian exposes 391. And it is the same lens one more time: the semantic count is roughly how many UI decisions the system has pre-made and named. That, not the size of the primitive ramp, is the number to compare.</p><h2>Everyone names the same thing differently</h2><p>Here is a semantic background color, named eight ways.</p><ul><li><p><strong>Workday: </strong><code>surface.default</code></p></li><li><p><strong>Twilio: </strong><code>color-background-strong</code></p></li><li><p><strong>Polaris: </strong><code>color-bg-fill-critical-hover</code></p></li><li><p><strong>Fluent: </strong><code>colorNeutralForeground1</code></p></li><li><p><strong>GitLab:</strong> <code>action.primary.background.default</code></p></li><li><p><strong>PatternFly:</strong> <code>global.background.color.primary.default</code></p></li><li><p><strong>Cloudscape: </strong><code>colorBackgroundButtonPrimaryActive</code></p></li><li><p><strong>Spectrum: </strong><code>accent-background-color-default</code></p></li></ul><p></p><p><strong>Here is the primitive, the color blue</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_!g2Yd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g2Yd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 424w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 848w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!g2Yd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png" width="1440" height="1120" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1120,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94222,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.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_!g2Yd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 424w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 848w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!g2Yd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452fb044-25a8-4145-8afb-3f71a60e0bdf_1440x1120.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Chakra: <code>blue.500</code></p></li><li><p>Mantine: <code>blue[6]</code></p></li><li><p>Radix: <code>--blue-9</code></p></li><li><p>Open Props: <code>--blue-7</code></p></li><li><p>Carbon: <code>blue50</code></p></li><li><p>Primer: <code>base.color.blue.5</code></p></li><li><p>Spectrum: <code>blue-500</code></p></li><li><p>Salesforce: <code>SCIENCE_BLUE</code></p></li></ul><p>To see how deep the differences go, put ten systems side by side. These are real tokens from the raw files, and no two share a grammar:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!klNn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!klNn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 424w, https://substackcdn.com/image/fetch/$s_!klNn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 848w, https://substackcdn.com/image/fetch/$s_!klNn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!klNn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!klNn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png" width="1440" height="1300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1300,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:297832,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.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_!klNn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 424w, https://substackcdn.com/image/fetch/$s_!klNn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 848w, https://substackcdn.com/image/fetch/$s_!klNn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 1272w, https://substackcdn.com/image/fetch/$s_!klNn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95526e5f-6cb0-4800-b89d-8fa86e4487b8_1440x1300.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Read the right column top to bottom and the problem becomes obvious: even the <em>order of information</em> disagrees. Some put the property first, some the role, and Mantine puts the role <em>before</em> the category. Cloudscape packs five facts into one name; Carbon&#8217;s <code>layer01</code> packs two. Workday&#8217;s <code>surface.default</code> and PatternFly&#8217;s <code>global.background.color.primary.default</code> describe nearly the same thing at a 5x length difference.</p><p>An agent that learned one of these conventions knows nothing about the next. There is no shared grammar across systems. The token name is the first thing an agent reads, and it means something different to everyone.</p><div class="callout-block" data-callout="true"><p>Remember my design tokens naming playground?<strong><a href="https://thedesignsystem.guide/design-tokens-naming-playbook"> (check it here) </a></strong></p></div><p>And here is the part that actually bites: your agent has already seen all ten of these grammars. They are in its training data, everyone. So it does not arrive at your codebase ignorant; it arrives with ten conflicting priors, and when it has to invent a token name, it blends them. That is why AI-suggested tokens come out looking plausible while matching nobody&#8217;s convention, including yours: a dotted path here, a kebab role there, a camelCase state glued on the end.</p><p>The fix costs one line. Declare your grammar where the agent will read it, in the token file or your conventions doc: &#8220;our tokens are <code>category-role-state</code>, kebab-case, semantic names only.&#8221; An agent can follow your grammar perfectly once you state it. What it cannot do is guess which of the ten you meant.</p><h2>Meaning is the youngest layer</h2><p>The files are stored differently, sized differently, and named differently. An agent can adapt to all of that. The one thing it cannot infer is the part most files leave out: what each token means.</p><p>I looked for three kinds of meaning across the fifty:</p><ul><li><p>A written description of the token: about 15 of 50.</p></li><li><p>A deprecation field an agent can read: about 10 of 50.</p></li><li><p>An explicit do-not-use rule: 1 of 50.</p></li></ul><p>One.</p><p><strong>That one is GitHub Primer.</strong> Its token file carries a field built for agents.</p><pre><code><code>muted: {
  $value: '{base.color.neutral.9}',
  $type: 'color',
  $description: 'Muted text for secondary content and less important information',
  $extensions: {
    'org.primer.llm': {
      usage: ['muted-text', 'secondary-text', 'helper-text', 'placeholder'],
      rules: 'Use for secondary text like timestamps, metadata, and helper text. Do NOT use for primary content.',
    },
  },
},</code></code></pre><p><strong>That is more than a color value. It is a <mark data-color="#cfe2f3" style="background-color: rgb(207, 226, 243); color: rgb(0, 0, 0);">value, plus a job</mark>, plus a note on when to skip it.</strong></p><p>A few systems are close behind. Workday records the old names each token used to carry, so an agent can migrate old code instead of guessing. Atlassian and GitLab attach a description and a deprecation flag to each token. Cloudscape keeps a parallel metadata file with usage notes and governance flags. The NL Design System, the Dutch government&#8217;s, ships clean DTCG with a description and a deprecation field on its tokens, the closest in spirit to Primer.</p><p><strong>Most files look like this:</strong></p><pre><code><code>export const gray = {
  gray1:  "#fcfcfc",
  gray9:  "#8d8d8d",
  gray11: "#646464",
  gray12: "#202020",
};</code></code></pre><p>The names hint at intent. The file itself stays quiet on role, usage, or what to avoid. An agent reading it gets a number and infers the rest.</p><p>This is not a gap in anyone&#8217;s work. For many systems the meaning does exist. It just lives in the documentation site, the build pipeline, or the naming convention, rather than the token file an agent loads first.</p><p>So meaning is the youngest layer. A few teams have started writing it into the file. Most have not yet, because the need is new.</p><p>The next phase of design tokens is not only transformation. It is labeling. That is what turns a readable token file into one an agent can reason with.</p><h2>I tested the guess</h2><p>Saying &#8220;the agent has to guess&#8221; is a claim, so I tested it.</p><p>I built a small fictional token file, ten colors, the kind of bare file most of the fifty look like. It contains one trap that real products have all the time: two reds. <code>crimson500</code> is the brand accent. <code>red600</code> is the system danger color. Nothing in the bare file says which is which.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mmB0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mmB0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 424w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 848w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 1272w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!mmB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png" width="1440" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72181,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.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_!mmB0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 424w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 848w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 1272w, https://substackcdn.com/image/fetch/$s_!mmB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3ce8a8c-371d-4489-955f-c7cf1a4e3c20_1440x628.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then I gave the file to an AI agent with one task: style a destructive &#8220;Delete account&#8221; button and an inline error alert, using only tokens from the file. I ran it three times on the bare file, and twice on the same file with one change: each token carried a DTCG <code>$description</code> saying what it is for, including &#8220;<em>Do NOT use for system feedback or destructive actions&#8221;</em> on the brand crimson.</p><p>The bare file, three runs:</p><ul><li><p>Run one put the brand crimson on the delete button.</p></li><li><p>Run two picked the danger red for the button, but a different text color than the others.</p></li><li><p>Run three put the brand crimson on the delete button again.</p></li></ul><p>Two out of three runs painted the most destructive action in the product with the marketing color, and no two runs agreed on the full answer. The agent was not being careless. <code>crimson500</code> is a perfectly reasonable guess for &#8220;destructive&#8221; if all you have is the name and the hex. The file gave it a value, not a reason.</p><p>The labeled file, two runs: identical answers, both correct, and both reasonings quoted the descriptions back to me. &#8220;red600 is explicitly designated for destructive actions.&#8221; No guessing, because there was nothing left to guess.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zF0w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zF0w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 424w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 848w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 1272w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!zF0w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png" width="1440" height="880" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:880,&quot;width&quot;:1440,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90755,&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://learn.thedesignsystem.guide/i/200413433?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.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_!zF0w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 424w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 848w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 1272w, https://substackcdn.com/image/fetch/$s_!zF0w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5fb4f31-f0b2-4f83-a48c-762f73eca28a_1440x880.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is one small experiment with a planted trap, not a benchmark, so take it as an illustration rather than proof. But the trap is not artificial. If your brand color and your danger color live anywhere near each other, an agent reading your bare token file is flipping this same coin right now.</p><h2>Is your token file agent-ready? </h2><p>Open your actual token source, the file an agent would load, not your docs site, and answer these:</p><ol><li><p><strong>Does any token carry a written description in the file itself?</strong> Not in Figma, not on the docs site. In the file. </p></li><li><p><strong>Is there a machine-readable deprecation field?</strong> If a token is on its way out, can a parser tell, or is that knowledge in someone&#8217;s head? </p></li><li><p><strong>Does any token say when NOT to use it?</strong> The do-not rule is what stops the crimson-on-delete-button mistake. </p></li><li><p><strong>Could an agent tell your brand color from your danger color using only the file?</strong> If both are named by hue and number, it cannot.</p></li><li><p><strong>If a teammate asked &#8220;which token for an error border?&#8221;, does the answer exist anywhere a machine can read?</strong></p><p></p></li></ol><h2>What you can try this week</h2><p>If you want your tokens to work better with agents, you do not need to relabel everything. Start with ten high-use tokens, the ones an agent is most likely to misread:</p><ul><li><p>primary action color</p></li><li><p>danger color</p></li><li><p>disabled state</p></li><li><p>focus ring</p></li><li><p>form spacing</p></li><li><p>card surface</p></li><li><p>border radius</p></li><li><p>elevation</p></li><li><p>body text</p></li><li><p>page background</p></li></ul><p>For each one, add:</p><ul><li><p>role</p></li><li><p>usage</p></li><li><p>anti-usage</p></li><li><p>state</p></li><li><p>component relationship</p></li><li><p>deprecated status</p></li><li><p>decision link if one exists</p></li></ul><p>Here is what that looks like on one ordinary token. Before, the way most of the fifty files look:</p><pre><code><code>{
  "red600": { "$value": "#d62b1f", "$type": "color" }
}</code></code></pre><p>After, using nothing but the DTCG fields that already exist plus one extensions block:</p><pre><code><code>{
  "red600": {
    "$value": "#d62b1f",
    "$type": "color",
    "$description": "System danger. Destructive action backgrounds, error text, error borders.",
    "$deprecated": false,
    "$extensions": {
      "com.yourcompany.usage": {
        "role": "danger",
        "use": ["destructive-buttons", "error-text", "error-borders"],
        "doNotUse": "Decorative elements, charts, brand moments. Use crimson500 for brand.",
        "components": ["Button[variant=danger]", "Alert[type=error]", "Input[invalid]"],
        "decision": "ADR-014"
      }
    }
  }
}</code></code></pre><p>Copy that block, rename the extension namespace to your org, and you have the template. Two things make this cheaper than it looks. <code>$description</code> and <code>$deprecated</code> are already part of the DTCG spec, so you are not inventing a format, and your build pipeline will ignore the extra fields without any changes. You are not migrating anything. You are annotating what is already there.</p><p>And while you are in the file, add the one line from the naming section: declare your grammar. </p><p>That is enough to start. The goal is to give the agent a little less to guess. In my labeling experiment above, the difference between guessing and knowing was exactly one <code>$description</code> field per token.</p><p>As you can see, your token file is not only a source of truth, but is a memory layer for your agents.</p><p>Enjoy exploring &#128588;</p><div><hr></div><div class="callout-block" data-callout="true"><p>All counts were taken from the public token sources below, read at the file level, not the documentation. The full dataset at <a href="https://www.aidesign.guide/token-audit">aidesign.guide/token-audit</a>.</p></div><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Code prototypes are fast. Feedback on them is not by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;TJ&quot;,&quot;id&quot;:185349443,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f5d9149-d097-4830-9ac3-54a14c5e13a7_3750x3750.jpeg&quot;,&quot;uuid&quot;:&quot;4d0338ea-c152-48b2-95c3-f8b895eddd70&quot;}" data-component-name="MentionToDOM"></span> Pitre</strong></p><p><strong>&#128279; <a href="https://open.substack.com/pub/southleft/p/code-prototypes-are-fast-feedback?r=qugd&amp;utm_campaign=post&amp;utm_medium=web">Link</a></strong></p><p></p><p><strong>Pixel art tool where every pixel is code, not raster by </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Pablo Stanley&quot;,&quot;id&quot;:13846660,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44048a05-76d3-48f5-9462-654fc420b826_1200x1200.png&quot;,&quot;uuid&quot;:&quot;1a477da1-084f-4cc9-a6fd-0cf880e9f1b7&quot;}" data-component-name="MentionToDOM"></span> </p><p><strong>&#128279; <a href="https://newt.sh/">Link</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Design Systems That Document AI]]></title><description><![CDATA[26 design systems to learn from]]></description><link>https://learn.thedesignsystem.guide/p/design-systems-that-document-ai</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/design-systems-that-document-ai</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Mon, 01 Jun 2026 15:03:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BIlw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BIlw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BIlw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BIlw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:699681,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/200116858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.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_!BIlw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!BIlw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23904bb7-97d6-4cab-9265-d7bc956726e2_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I spent a week reading every public design system I could find that documents AI. Out of 156 systems in my dataset, 26 now address it in some form: an AI label, a chat pattern, an explainability framework, or a set of ethics rules. That is up from the handful you would have found a year ago, and it is climbing fast.</p><p>The interesting part is not the count. It is that the teams doing this well have never coordinated, and yet they keep arriving at the same four rules. IBM, AWS, GitLab, Red Hat, SAP, Workday, Apple. Different companies, different industries, different component libraries, and a similar rulebook. That convergence is the most useful signal in the dataset, because it tells you <strong>which AI guidelines are becoming conventions and which are still one company&#8217;s experiment.</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_!vfkb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vfkb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vfkb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png" width="1456" height="1733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6603974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/200116858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.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_!vfkb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!vfkb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6b11ce-0efc-47df-a061-b70d314a004a_2268x2700.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>What AI readiness actually means</h2><p>For this piece, AI readiness means how well a public design system helps teams design, explain, govern, and scale AI-powered experiences. It measures the published system, not the company behind it. <strong>Apple</strong> shipped Apple Intelligence long before its guidelines documented generative AI.</p><h2>The AI-readiness maturity model</h2><p><strong>Level 0: No visible AI layer</strong></p><p>No public AI guidance at all. 130 of the 156 systems sit here, which leaves every product team to work AI out alone.</p><p><strong>Level 1: AI as decoration</strong></p><p><strong>Shopify Polaris</strong> marks AI with a &#8220;Magic&#8221; color role and tokens like <code>--p-color-bg-surface-magic</code>. You get a recognizable signal and nothing about behavior. Mark only, and the ceiling is a purple badge.</p><p><strong>Level 2: AI as a component</strong></p><p><strong>IBM Carbon</strong> ships an AI label that opens an explainability popover, reused across 13 components. Teams stop rebuilding the badge and the chat panel. A component library still cannot say when AI should act, when it should wait, or when a human takes over.</p><p><strong>Level 3: AI as an interaction pattern</strong></p><p><strong>Atlassian</strong> publishes interaction guidelines for how AI should suggest, respond, and hand off inside a workflow. Designers and PMs get the behavioral decisions, not just the UI. The risk is patterns that float free of governance, metrics, or code.</p><p><strong>Level 4: AI as governance layer</strong></p><p><strong>Microsoft Fluent 2</strong> turns governance into enforcement: a Responsible AI rubric with letter grades and automatic fails, plus a page that governs the AI&#8217;s own tone and guardrails. The payoff is accountability. The catch is governance that never connects back to a reusable pattern.</p><p><strong>Level 5: AI as system infrastructure</strong></p><p><strong>Microsoft Fluent</strong> is the only strong public signal here: a named &#8220;Copilot UI Kits&#8221; tier of AI components across Web, iOS, and Android, aligned to code. A kit that extends the core beats any principles page. Almost no one reaches this rung, because everything past that one table stays private.</p><h3>Reading the ladder</h3><p>The jump that matters is 2 to 3, the line between a system that styles AI and one that helps you design how it behaves. That is the model. Now the scores, because the ranking is not the one you would guess.</p><h2>The scorecard</h2><p>I scored the systems that document AI on five dimensions, twenty points each: how they <strong>mark AI,</strong> whether they ship <strong>reusable AI components</strong>, whether they document <strong>how AI behaves</strong>, <strong>whether they govern it</strong>, and whether they <strong>wire it into infrastructure</strong>.</p><p>It measures the depth of public documentation, not the quality of the company&#8217;s actual AI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!blFJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!blFJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 424w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 848w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 1272w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!blFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png" width="1040" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1040,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69857,&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://learn.thedesignsystem.guide/i/200116858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.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_!blFJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 424w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 848w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 1272w, https://substackcdn.com/image/fetch/$s_!blFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3168039b-bc0f-4744-8fd9-911fe957f6d8_1040x680.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>ServiceNow</strong> ships a full &#8220;Designing for AI&#8221; section, an &#8220;Identifying AI content&#8221; page, a ten-question value gate that opens with &#8220;Is AI really needed to solve the problem,&#8221; and a downloadable responsible-AI handbook. <strong>Red Hat PatternFly</strong> ships an actual npm ChatBot library with AI-labeled messages, citation tiles, feedback forms, streaming, and conversation-history error states. Quiet, enterprise, unglamorous, and ahead of everyone.</p><p>The household names sit low, for an honest reason. <strong>Apple</strong> has the best responsible-AI writing in the set and zero reusable components, because <strong>Apple</strong> ships frameworks, not a public component library, so it scores 43. <strong>Shopify</strong> has the cleanest AI marking tokens anywhere and almost no behavioral guidance, so it scores 31. High brand, low documented depth.</p><p><strong>SAP</strong> did the work, then took it <em>offline.</em> It built a full AI and Joule design practice and published a lot of it openly, but those pages now return errors after a guidelines refresh. That is why it is not in the top 10: the thinking is not gone, the public just cannot read it anymore.</p><p>&#128680; One honest limit before the rules. </p><p>This measures <strong>public documentation,</strong> and public is not the same as capable. A low score means a team has not exposed its AI thinking to the outside world, not that the thinking does not exist. <strong>Carbon&#8217;s</strong> deeper AI guidance sits behind &#8220;IBMers only&#8221; links. <strong>Atlassian</strong> gates its AI Figma libraries to Atlassians. <strong>Apple</strong> shipped Apple Intelligence across its platforms for a year before its public guidelines documented generative AI. The AI work inside these companies is almost certainly larger than what their design systems publish. What I am scoring is the generosity and discipline shown in the open, which is the only part another team can learn from.</p><p>Whatever level a system reaches, the ones worth copying share four rules. They are what good looks like from Level 2 up, and they are drawn from reading all 26 side by side.</p><div><hr></div><h2>Rule 1: Mark it, every time</h2><p>The user must always know when content came from a model.</p><p><strong>IBM&#8217;s Carbon for AI</strong> is the most developed example. <strong>IBM</strong> built an entire extension of <strong>Carbon</strong> whose core is the AI label, an interactive marker that sits inside any element containing AI-generated content. The label is also the doorway to an explanation, which I will come back to.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JBUp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JBUp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 424w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 848w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!JBUp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png" width="1152" height="1152" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1152,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Carbon's AI label shown inside form inputs, marking which fields were generated by AI&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Carbon's AI label shown inside form inputs, marking which fields were generated by AI" title="Carbon's AI label shown inside form inputs, marking which fields were generated by AI" srcset="https://substackcdn.com/image/fetch/$s_!JBUp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 424w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 848w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!JBUp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec056dd-2ec6-4566-a4b9-1e3635a4de4f_1152x1152.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The rule <strong>Carbon</strong> writes is a restriction, and that is what makes it a real guideline:</p><blockquote><p>&#8220;Don&#8217;t use the Carbon for AI styling as decoration. While these new styling elements are enticing, they are strictly intended to identify any instances of AI being used in an experience.&#8221;</p></blockquote><p><strong>AWS Cloudscape</strong> reaches the same place from a different angle. Its generative AI output label is a small &#8220;Generated by AI&#8221; tag with a sparkle icon, and the guidance reserves that icon with unusual strictness:</p><blockquote><p>&#8220;Sparkle icon should not be used in any other labels other than generative AI output. Don&#8217;t use this label for outputs produced by other forms of AI that are not generative.&#8221;</p></blockquote><p><strong>Cloudscape</strong> even tells you not to over-mark: in a list where every item is AI-generated, label the group once, so users are informed without being overwhelmed. </p><p><strong>GitLab Pajamas</strong> writes the same rule as ready-to-paste copy. Flag AI content with a &#8220;Generated by AI&#8221; or &#8220;Summarized by AI&#8221; disclaimer, and pair it with a verification nudge: &#8220;Content generated by AI should be seen as a starting point and verified before use,&#8221; or where space is tight, simply &#8220;Verify before use.&#8221; </p><p><strong>Workday Canvas</strong> turns marking into infrastructure, shipping an AI badge, an AI button, and dedicated AI color tokens so the mark is consistent by default.</p><p>The shared rule: AI content is always labeled, the label is consistent, and the styling is reserved for AI alone.</p><div><hr></div><h2>Rule 2: Explain it, in layers</h2><p>Marking tells the user that AI was involved. Explaining tells them why, and the leaders agree it should arrive in layers, not all at once.</p><p>The clearest live example is <strong>IBM Carbon</strong>. Its explainability popover attaches to the AI label: a quick summary first, with the option to dig into more detail only if the user asks. The principle underneath is What, Why, How. Show the decision on the surface, the reasoning one level down, and the data and process for the people who need to audit it, with depth scaled to the stakes. A low-risk suggestion shows the &#8220;what&#8221; and stops. A decision with regulatory weight exposes the &#8220;how&#8221; with a traceable trail. </p><p><strong>Cloudscape</strong> applies the same idea to actions rather than content, showing each step the AI takes and a plain-language description of the impact before anything happens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k0SV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k0SV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 424w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 848w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 1272w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!k0SV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png" width="1152" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Carbon's explainability popover, opened from the AI label, showing a layered explanation of what the AI produced&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Carbon's explainability popover, opened from the AI label, showing a layered explanation of what the AI produced" title="Carbon's explainability popover, opened from the AI label, showing a layered explanation of what the AI produced" srcset="https://substackcdn.com/image/fetch/$s_!k0SV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 424w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 848w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 1272w, https://substackcdn.com/image/fetch/$s_!k0SV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58c0c718-f5ef-4665-9428-c7faa23d7c95_1152x864.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>SAP Fiori</strong> once had the cleanest version of this, a well-regarded &#8220;Explainable AI&#8221; page built on those What, Why, How layers. Then <strong>SAP</strong> pulled it. As of this writing the page reads &#8220;This page has been deprecated and is no longer available,&#8221; part of an AI guidelines refresh. It is a sharp reminder that AI documentation is so young that even good work gets deprecated mid-flight, which is the strongest argument for treating these guidelines as living infrastructure rather than a one-time publish.</p><p>None of the live examples dumps model internals to the user. They reveal on demand, scaled to how much the decision matters.</p><div><hr></div><h2>Rule 3: Keep the human in control</h2><p>This is the rule with the most agreement and the best detail, because it is where AI UX differs most from ordinary UX.</p><p><strong>GitLab</strong> states the principle directly:</p><blockquote><p>&#8220;Design AI to be <strong><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">collaborative</mark></strong>, not autonomous. AI should suggest and assist while users remain in control. Respect human judgment by ensuring AI acknowledges uncertainty and defers to user expertise when appropriate.&#8221;</p></blockquote><p><strong>Carbon</strong> expresses the same idea as a component behavior. When an input holds AI-generated content and the user edits it, the field drops its AI styling and becomes ordinary. A &#8220;revert to AI&#8221; control lets the user bring the original suggestion back. The rule &#8220;the human can always override, and the override is reversible&#8221; is written into how the component works, so a team cannot forget to honor 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_!SWC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SWC_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 424w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 848w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 1272w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SWC_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png" width="1152" height="648" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:648,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A Carbon input showing the revert-to-AI state after a user edits an AI suggestion&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A Carbon input showing the revert-to-AI state after a user edits an AI suggestion" title="A Carbon input showing the revert-to-AI state after a user edits an AI suggestion" srcset="https://substackcdn.com/image/fetch/$s_!SWC_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 424w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 848w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 1272w, https://substackcdn.com/image/fetch/$s_!SWC_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb907f390-f8f8-4125-9251-e46b2da741f5_1152x648.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>AWS Cloudscape</strong> goes furthest, with a full pattern for actions an AI takes on your behalf. It defines authorization levels tied to risk, a human-in-the-loop sequence, and a rule about permanence.</p><blockquote><p>&#8220;Don&#8217;t execute changes that have serious, irreversible, or cascading consequences without explicit user authorization.&#8221;</p></blockquote><p><strong>Cloudscape&#8217;s</strong> flow is worth copying outright: the AI states the action and its impact, lists the exact resources affected, asks for simple authorization on low-risk changes and additional confirmation on destructive ones, then confirms what changed and offers a way to reverse 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_!LR-O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LR-O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 424w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 848w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 1272w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!LR-O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png" width="650" height="584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:584,&quot;width&quot;:650,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Cloudscape's authorization dialog: the AI describes the change, lists affected resources, and asks for confirmation before acting&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cloudscape's authorization dialog: the AI describes the change, lists affected resources, and asks for confirmation before acting" title="Cloudscape's authorization dialog: the AI describes the change, lists affected resources, and asks for confirmation before acting" srcset="https://substackcdn.com/image/fetch/$s_!LR-O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 424w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 848w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 1272w, https://substackcdn.com/image/fetch/$s_!LR-O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd92e002-d1b2-4677-a988-f81de3af3e83_650x584.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Three companies, one rule. The human decides, the human can undo, and the riskier the action, the more explicit the consent.</p><h2>Rule 4: Design for the moment it is wrong</h2><p>The weakest section in most teams&#8217; thinking is the strongest signal of a mature guideline. The good ones plan for failure on purpose.</p><p><strong>PatternFly</strong> gives the rule its own heading, &#8220;Be prepared for something to go wrong,&#8221; and states it plainly:</p><blockquote><p>&#8220;When AI fails, be explicit about errors and let users regain control as they want. Provide easy access to human support.&#8221;</p></blockquote><p><strong>GitLab</strong> formalizes this into a risk assessment. Before building, weigh the probability of an error against its impact, where impact compares cost and benefit. An agent explaining a feature is low risk. A flow that opens merge requests with security fixes is high risk, and high-risk actions require opt-in and a review step before execution. <strong>GitLab</strong> also writes the fallback rule: when confidence is low, &#8220;make sure there is a path forward that does not rely on AI.&#8221; <strong>Cloudscape</strong> designs the failed-action state in detail, showing which step broke, why, and the specific steps to recover.</p><p>Failure handling is where you can tell the difference between a real guideline and a press release. A press release talks about what the AI can do. A guideline tells you what happens when it does the wrong thing.</p><div><hr></div><h2>The differences </h2><p>Every company invents its own visual language for AI (which makes sense, since it connected with the branding). <strong>Carbon</strong> uses light, glow, and gradients as a metaphor for illumination. <strong>Cloudscape</strong> uses a sparkle icon. <strong>GitLab</strong> uses a custom &#8220;tanuki AI&#8221; illustration. <strong>Workday</strong> uses an AI badge with its own tokens. Each is internally consistent and externally incompatible. A person who uses four products in a day gets four different signals for the same concept, &#8220;this came from AI.&#8221; The field agreed that AI must be marked. It has not agreed on what the mark looks like, and until that settles, the transparency only works one product at a time.</p><p>There is a quieter disagreement too, about whether to build the feature at all. <strong>PatternFly</strong> opens its guidelines with a value gate: do not add AI &#8220;simply because it is new, trendy, or fun.&#8221; <strong>GitLab</strong> says the same, telling designers to ask &#8220;How might we help users?&#8221; instead of &#8220;Can we use AI to?&#8221; <strong>Apple</strong>, in the Generative AI section it added to its Human Interface Guidelines in 2025, writes it most plainly: &#8220;Generative AI is a powerful tool, but it&#8217;s not the right solution for every situation.&#8221; When <strong>IBM</strong>, <strong>GitLab</strong>, <strong>Red Hat</strong>, and <strong>Apple</strong> independently tell you that the first AI guideline is permission to not use AI, that is worth listening to. The gate is the most underused guideline in the set, and the one I would adopt first.</p><div><hr></div><h2>What to learn from</h2><p>I would not say copy, because what is public is only a slice of what each team knows, and a pattern lifted without its context tends to break. Learn the move and the reasoning behind it. Five worth studying.</p><ul><li><p><strong>Carbon&#8217;s</strong> tokenized AI identity. AI color and style tokens live inside the existing themes, and the AI label component doubles as the trigger for a layered explainability popover. The lesson: make marking AI a variant toggle, not bespoke styling, so it stays consistent by default.</p></li><li><p><strong>Fluent&#8217;s</strong> responsible-AI scorecard. A pass or fail rubric with letter grades and automatic-fail conditions. The lesson: turn governance into a shippability gate, so an AI feature cannot go out without meeting transparency and user-control criteria.</p></li><li><p><strong>Atlassian&#8217;s</strong> workflow-level patterns. AI framed as behavior, with a standing &#8220;Uses AI. Verify results&#8221; footer carried by the component. The lesson: bake verification into the pattern rather than leaving it to each team to remember.</p></li><li><p><strong>Cloudscape&#8217;s</strong> user-authorized actions. Actions classified by risk, then gated. The lesson: a simple confirmation for reversible changes, explicit authorization for destructive ones, and a way back wherever possible.</p></li><li><p><strong>Shopify&#8217;s</strong> AI signaling reads as a floor and not a ceiling. The Magic tokens are the cleanest marking system in the set. The lesson is the reservation rule, mark only genuine AI, and the warning is not to mistake marking for the whole job.</p></li></ul><div><hr></div><h2>What to avoid</h2><ul><li><p>Treating AI as a color palette. A purple badge is marking, not design.</p></li><li><p>Shipping sparkle icons with no behavioral rules behind them.</p></li><li><p>Documenting chat but not its failure states.</p></li><li><p>Documenting generation but not review.</p></li><li><p>Documenting AI presence but not user control.</p></li><li><p>Documenting principles but not reusable patterns.</p></li><li><p>Keeping the AI guidelines in their own silo, cut off from the rest of the system.</p></li></ul><div><hr></div><h2>What is missing from almost every design system</h2><p>I could not find solid public guidance for:</p><ul><li><p>confidence and uncertainty</p></li><li><p>source attribution</p></li><li><p>hallucination recovery</p></li><li><p>user correction loops</p></li><li><p>escalation to a human reviewer</p></li><li><p>AI memory and personalization controls</p></li><li><p>proactive-behavior boundaries</p></li><li><p>agent permissions</p></li><li><p>multi-agent workflows</p></li><li><p>validation of AI-generated UI</p></li><li><p>product analytics for AI interactions</p></li><li><p>design-system observability</p></li></ul><p>Some of this almost certainly exists inside these companies, in internal guidelines and gated libraries, but it is not published, so no one outside can learn from it yet. The first team to document them well in the open will set the next standard, the way <strong>Carbon</strong> set it for the AI label.</p><h2>What a good AI pattern actually documents</h2><p>Most AI &#8220;patterns&#8221; are a single sentence.<strong> A real one answers fifteen questions: </strong>user intent, trigger, input, output, system behavior, user controls, feedback mechanism, error state, confidence and uncertainty handling, explainability, accessibility, data and privacy implications, examples, anti-patterns, and implementation notes.</p><p>The whole gap is visible in one comparison.</p><p>A weak pattern says:</p><blockquote><p>Use this badge when AI is involved.</p></blockquote><p>A strong pattern says:</p><blockquote><p>Use this pattern when AI generates content the user must review before publishing. The user must be able to inspect, edit, accept, reject, regenerate, and report low-quality output. The system should show what was generated, what source or context was used, and what happens after acceptance.</p></blockquote><p>That difference, between marking AI and designing it, is the whole article. The 26 systems that document AI mostly live in the first sentence. The few that live in the second, <strong>Carbon</strong>, <strong>Cloudscape</strong>, <strong>Atlassian</strong>, <strong>Fluent</strong>, are the ones worth studying.</p><h2>Why this matters</h2><p>The component is no longer the hard part. Anyone can ship an AI chat panel or a glowing suggestion field this week. The hard part is the same as it has always been in design systems: writing down when to use it, how to mark it, who stays in control, and what happens when it fails, so the next person who builds with your system does the right thing without asking.</p><p>That is the entire job of a usage guideline, and AI did not change it. AI only raised the cost of skipping it. An unlabeled component that quietly does the wrong thing is a bug. An unlabeled AI component that quietly does the wrong thing, with no explanation and no way back, is a breach of trust. </p><p>Enjoy exploring &#128588;</p><div><hr></div><p>&#128279; <a href="https://carbondesignsystem.com/guidelines/carbon-for-ai/">IBM Carbon Design System</a>, &#8220;Carbon for AI.&#8221; AI label, explainability popover, revert-to-AI, reserved styling. </p><p>&#128279; <a href="https://cloudscape.design/gen-ai/">AWS Cloudscape</a>, &#8220;Generative AI output label&#8221; and &#8220;User authorized actions.&#8221; Reserved sparkle icon, human-in-the-loop authorization, action permanence. </p><p>&#128279; <a href="https://design.gitlab.com/patterns/ai-human-interaction">GitLab Pajamas</a>, &#8220;AI-human interaction.&#8221; Collaborative not autonomous, risk assessment, &#8220;Verify before use,&#8221; graceful failure. </p><p>&#128279; <a href="https://www.patternfly.org/patternfly-ai/ai-guidelines/">Red Hat PatternFly</a>, &#8220;AI guidelines.&#8221; Value gate, transparency, failure handling. </p><p>&#128279; <a href="https://experience.sap.com/fiori-design-web/explainable-ai/">SAP Fiori</a>, &#8220;Explainable AI&#8221; (the What / Why / How layers, now deprecated as of guideline v1.130 and showing a deprecation notice). </p><p>&#128279; <a href="https://horizon.servicenow.com/">ServiceNow</a>, &#8220;Designing for AI&#8221; and &#8220;Identifying AI content&#8221; (top scorer, governance + marking). </p><p>&#128279; <a href="https://www.patternfly.org/patternfly-ai/ai-guidelines/">Red Hat PatternFly ChatBot</a>, the @patternfly/chatbot React library. </p><p>&#128279; <a href="https://developer.apple.com/design/human-interface-guidelines/generative-ai">Apple Human Interface Guidelines</a>, &#8220;Generative AI&#8221; (added June 2025). Transparency, keep people in control, the value gate, hallucination handling. </p><p>&#128279; <a href="https://polaris.shopify.com/design/colors/palettes-and-roles">Shopify Polaris</a>, &#8220;Magic&#8221; color role and tokens (Level 1 example). </p><p>&#128279; <a href="https://atlassian.design/patterns/ai-interaction-guidelines">Atlassian Design System</a>, &#8220;AI interaction guidelines&#8221; and &#8220;Rovo and AI&#8221; patterns (Level 3 example). </p><p>&#128279; <a href="https://fluent2.microsoft.design/responsible-AI">Microsoft Fluent 2</a>, &#8220;Responsible AI&#8221; and &#8220;Content engineering&#8221; (Level 4 example). </p><p>&#128279; <a href="https://fluent2.microsoft.design/get-started/design">Microsoft Fluent 2</a>, &#8220;Copilot UI Kits&#8221; tier, &#8220;Start designing&#8221; (Level 5 example). </p><p>&#128279; <a href="https://canvas.workday.com/">Workday Canvas</a>, &#8220;AI Elements.&#8221; AI tokens, AI badge and button, AI color roles. </p><p>&#128279; <a href="https://soul.emplifi.io/">Emplifi Soul Design System</a>, &#8220;AI guidelines.&#8221; Eight AI interaction patterns. </p><p>&#128279; <a href="https://www.microsoft.com/en-us/haxtoolkit/ai-guidelines/">Microsoft HAX Toolkit.</a> 18 evidence-based guidelines for human and AI interaction. </p><p>&#128279; <a href="https://pair.withgoogle.com/guidebook">Google PAIR, &#8220;People + AI Guidebook.</a>&#8221; A foundational reference several of the systems above cite. </p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Don&#8217;t build components for the sake of components</strong> by Marianne R&#248;svik</p><p>The frontend world loves new tools. New frameworks, new libraries, new ways to wrap what is essentially just HTML, CSS and a bit of JavaScript.</p><p>Right now, Web Components are getting a lot of attention for good reason. But we need to be careful not to fall into a classic trap: using a technology because we can, not because we should.</p><p><strong>&#128279; <a href="https://www.linkedin.com/pulse/dont-build-components-sake-marianne-r%C3%B8svik-ipeie/">Link</a></strong></p>]]></content:encoded></item><item><title><![CDATA[The Design System Advantage Is Memory]]></title><description><![CDATA[How to find the design system memory your AI agent is missing]]></description><link>https://learn.thedesignsystem.guide/p/the-design-system-advantage-is-memory</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/the-design-system-advantage-is-memory</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Mon, 25 May 2026 12:48:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wGEa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wGEa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wGEa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wGEa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:553790,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.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_!wGEa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!wGEa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7be489b7-f4e9-4e09-949b-edc10f9f8c35_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I connected 105 MCP tools to my design system, I thought it was AI-ready. It wasn&#8217;t.</p><p>The tools could read the surface: tokens, docs, components, Figma. But they did not know why a pattern had been rejected, because that memory lived across Slack, ADRs, and Figma comments. I had given the agent access. I had not given it memory.</p><p><strong>This is why I think memory is the design system advantage.</strong></p><p>The shift is simple: stop asking whether your agent needs more tools. Ask whether it can find the decisions your team has already made. The advantage is the memory your company has and whether your agent can use it, not the model, the number of tools, or the clever prompt.</p><p>Companies are already feeling the <strong>AI ROI </strong>problem. They have bought the tools. They have run the demos. They have a dozen teams asking agents to write code, summarize research, generate flows, review tickets, and clean up docs.</p><p>But the hard part is whether <strong>the agent has enough trusted context</strong> to do useful work without constant correction.</p><p>Some companies have too much data. Thousands of docs, tickets, meetings, comments, specs, research notes, and decision threads. The agent can technically read them, but it has no idea what matters.</p><p>Some companies have not enough usable data. The important decisions exist, but only as memory, buried Slack threads, or comments in files nobody will open again.</p><p>Both create the same failure.</p><p>You end up babysitting the agent. You correct the same wrong assumption three times. You explain the same component history again. You remind it that the team deprecated that pattern last quarter. You paste the context that should already be known.</p><p>If you do not want to babysit your agents, you have to be smart with your data.</p><h2>Bad context is expensive</h2><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xd2i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 424w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 848w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 1272w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xd2i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png" width="1456" height="195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:195,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:635484,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.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_!Xd2i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 424w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 848w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 1272w, https://substackcdn.com/image/fetch/$s_!Xd2i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77fbf323-3dbe-420f-9749-eee641a69153_2655x356.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Every wrong answer has a cost. Every retry has a cost. Every agent loop that reads the wrong files, summarizes the wrong docs, or repeats a rejected pattern burns tokens before it burns trust.</p><p><strong>The Verge </strong>reported that <strong>Microsoft</strong> is winding down most internal Claude Code usage in its Experiences + Devices group by the end of June and moving engineers toward GitHub Copilot CLI. The decision was framed as platform convergence, but The Verge also reported that financial pressure was part of the move.</p><p><strong>Uber</strong> hit the same wall from a different direction. Its CTO Praveen Neppalli Naga told The Information:</p><blockquote><p>I&#8217;m back to the drawing board, because the budget I thought I would need is <strong>blown away already.</strong></p></blockquote><p><strong>Axios </strong>reported an even cleaner version of the problem from inside Nvidia. Bryan Catanzaro, Nvidia&#8217;s vice president of applied deep learning, said:</p><blockquote><p>For my team, the cost of compute is far beyond the costs of the employees.</p></blockquote><p>Gartner&#8217;s forecast makes the pattern more obvious. Token prices may fall by more than 90 percent by 2030, but <strong>agentic systems can require 5 to 30 times more tokens per task than a standard chatbot. </strong>Lower unit cost does not save you if the workflow burns through much more context.</p><p><strong>METR&#8217;s </strong>time-horizon work explains why this gets more important as models improve. In its original March 2025 analysis, METR estimated that the length of tasks frontier agents can complete with 50 percent reliability had been roughly doubling every seven months.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kWIN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kWIN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 424w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 848w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 1272w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!kWIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png" width="1173" height="553" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/deb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:1173,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90132,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.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_!kWIN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 424w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 848w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 1272w, https://substackcdn.com/image/fetch/$s_!kWIN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeb95e90-b3f6-4572-87fb-9213dc14f4ba_1173x553.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h6>https://metr.org/time-horizons/</h6><p></p><p>This does not mean agents are faster than humans. METR defines the time horizon as the length of task measured by how long a human expert would take, not how long the AI spends running. The point for design systems is simpler: <strong>as agents take on longer tasks, they need more context, more tool calls, and more chances to retrieve the wrong memory.</strong></p><p>So context quality matters.</p><p>If the agent has to rediscover the same decision in every session, you pay for that rediscovery every time. If it asks the wrong person, reads the wrong file, or misses the support ticket that explains the pattern, you pay again. If a designer, engineer, PM, researcher, accessibility specialist, or support lead holds part of the answer but their knowledge is not in the corpus, the agent works with a partial map.</p><p><strong>Partial context creates expensive confidence. </strong>The goal is not to feed the agent everything. The goal is to make the right team memory retrievable before the agent starts acting.</p><h2>The visible 10 percent and the invisible 90</h2><p>Open your design system right now. The agent-readable surface is bigger than you think.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_6-4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_6-4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 424w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 848w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 1272w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!_6-4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png" width="1070" height="484" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:484,&quot;width&quot;:1070,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46234,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.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_!_6-4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 424w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 848w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 1272w, https://substackcdn.com/image/fetch/$s_!_6-4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37eea6a4-4c0c-440a-a97a-ea2f388aab64_1070x484.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The right column is the moat. Anyone can fork your token JSON. Nobody can fork why you made the decisions inside it.</p><p>This is the part I was ignoring. I had built tooling against the left column and assumed that was enough.</p><h2>The moat does not exist on day one</h2><p>The important part is not just data. It is data that improves over time.</p><p>Design systems have two phases, and the data flywheel works differently in each.</p><h3>0 to 1: founding phase</h3><p>The job is to make it work and prove it matters. Scrappy. A handful of high-impact components. Naming conventions still fluid. Adoption inside one team. The job is to ship the system, not to feed an agent. The data you generate is mostly throwaway, things like &#8220;the team tried X, it broke, then tried Y.&#8221; That is fine.</p><h3>1 to 100: scaling phase</h3><p>Make it last and make it scale. Solidified architecture. Rules over examples. Multiple brands, platforms, markets. Now you have:</p><ul><li><p>Three years of token renames with reasons attached</p></li><li><p>A dozen deprecated components and the threads explaining why</p></li><li><p>Governance trade-offs and the conversations that produced them</p></li><li><p>Drift reports across surfaces and brands</p></li><li><p>Critique notes that surface the same blind spots over and over</p></li><li><p>Performance reviews of the design system team itself</p></li></ul><p>This is the data most 1 to 100 design system teams already have. Almost none of them feed it to their agents. Most 1 to 100 teams already have this memory. They just have not made it retrievable.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bSQk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bSQk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 424w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 848w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 1272w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!bSQk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png" width="1200" height="434" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:434,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:127011,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.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_!bSQk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 424w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 848w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 1272w, https://substackcdn.com/image/fetch/$s_!bSQk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1b4a40-e50a-4d28-9d90-a8dabf76afd0_1200x434.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>A pile of files is not enough</h2><p>The naive fix is &#8220;dump everything into a folder, point Claude at it, hope.&#8221; I tried it. It does not work well enough.</p><p>The agent can read individual files. It cannot reason across them. Ask &#8220;what changed about Alert this year and why?&#8221; and you get a polite shrug, because the answer lives across a Figma comment, a Slack thread, a closed PR, and an ADR that nobody linked together.</p><p><strong>QMD </strong>tests whether the pile has signal. The graph is what you build once you know it does.</p><p><strong><a href="https://github.com/tobi/qmd">QMD is a local search tool by Tobi Lutke</a> </strong>that lets an agent search your own folders with keyword search, vector search, and reranking.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MIT1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MIT1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 424w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 848w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 1272w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!MIT1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png" width="879" height="501" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:501,&quot;width&quot;:879,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107132,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.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_!MIT1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 424w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 848w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 1272w, https://substackcdn.com/image/fetch/$s_!MIT1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3370df7a-7fc7-4b6f-84d7-8c73fb328156_879x501.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is the <strong>lightweight version I used first.</strong> It does not turn your design system into a graph. It gives you a local hybrid index over your files, which is enough to start testing whether your corpus has signal.</p><p>The mature design system version is a graph. Tokens connect to components. Components connect to decisions. Decisions connect to outcomes. Outcomes connect back to tokens. The agent walks the graph instead of grepping the pile.</p><p>For a design system, the graph nodes are bigger than files. They are token, component, pattern, decision, owner, surface, brand. The edges are uses, supersedes, depends on, was decided by, drifted from.</p><p>This is what I rebuilt Tidy around. Every component knows its variants, its tokens, its owner, its decision history, its drift score. The agent queries the graph and knows, instead of crawling Figma and guessing.</p><h2>How I tested QMD on my own files</h2><p>I wanted to know if this actually works on my data, not just in theory.</p><p>So I installed QMD on a Tuesday and pointed it at six folders:</p><ul><li><p>Tidy decisions</p></li><li><p>Client design system specs</p></li><li><p>My Substack drafts</p></li><li><p>Customer research</p></li><li><p>IDS talk material</p></li><li><p>Granola meeting transcripts</p></li></ul><p>It embedded 1,511 of my documents locally in about 5 minutes.</p><p>That part matters. I did not want a huge knowledge management project. I wanted the smallest test that could tell me whether my own corpus was useful. It combines keyword search, vector search, and reranking, then returns the files most likely to help the agent answer the prompt. It works because it is a better first pass than asking the agent to crawl a random folder and hope.</p><p>The setup was simple:</p><ol><li><p>Pick a folder with real signal.</p></li><li><p>Add it as a QMD collection.</p></li><li><p>Embed it locally.</p></li><li><p>Query it before the agent answers.</p></li><li><p>Inject the top results as context.</p></li></ol><p>That pattern helps a design system because the system&#8217;s value lives across decisions, specs, critiques, and usage history.</p><p><strong>It also helps a product.</strong></p><p>A product team has the same problem in a different shape. The answer to &#8220;why does checkout work this way?&#8221; may live across research notes, support tickets, experiment docs, pricing decisions, analytics writeups, and a half-forgotten launch memo. If the agent only sees the current UI, it will confidently suggest the thing the team already tried.</p><p>The goal is not to make the agent read everything, but to make it retrieve the right context before it starts acting.</p><p>Then I ran three queries that map to real design system work.</p><p><strong>Query 1: &#8220;why did I choose certain naming conventions for tokens&#8221;</strong></p><p><strong>Query 2: &#8220;what have I written about agentic design system governance&#8221;</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_!nJtC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nJtC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 424w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 848w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 1272w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!nJtC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png" width="837" height="561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:561,&quot;width&quot;:837,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130059,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.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_!nJtC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 424w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 848w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 1272w, https://substackcdn.com/image/fetch/$s_!nJtC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9147a70d-1b04-4d2c-ac58-94a65e251745_837x561.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The hybrid pipeline (BM25 + vector + LLM rerank) connected &#8220;agentic governance&#8221; to &#8220;shared practice with developing consciousness.&#8221; It pulled a file I had categorized in my head as &#8220;philosophy&#8221; back into the bucket of &#8220;things I have written about how agents should behave.&#8221;</p><p>This is where QMD earned its keep on this corpus. Pure keyword search would never have surfaced that file. <strong>Hybrid retrieval did.</strong></p><p>Good data not only makes agents more accurate, it changes what you have to repeat.</p><h2>The agent layer is the smallest part</h2><p>This is the order most teams have backwards. They start with the agent. They should start with the data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dpuu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dpuu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 424w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 848w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 1272w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!dpuu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png" width="1200" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81098,&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://learn.thedesignsystem.guide/i/197844078?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.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_!dpuu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 424w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 848w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 1272w, https://substackcdn.com/image/fetch/$s_!dpuu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7413e1af-c809-4fd8-ad73-5bfa93613e5d_1200x466.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are three layers, and they have to come in order.</p><ol><li><p>Your data sits at the bottom. Tokens, decisions, drift, critiques, ADRs, and deprecation history. Everything in the invisible column from the table above.</p></li><li><p>Your structure sits on top of the data. A graph or hybrid index that lets an agent reason across it, not just search it.</p></li><li><p>Your agent sits on top of the structure. It is the smallest layer, mostly orchestration on top of the first two.</p></li></ol><p>Skip layer one, and the agent generates plausible nonsense. Skip layer two and the agent finds a file but cannot connect it to anything. Nail one and two and the agent layer is almost trivial. You can swap models freely.</p><p>This is also why &#8220;the team will switch to a better model later&#8221; is the wrong worry. Models get cheaper and more capable on someone else&#8217;s roadmap. Your data does not show up on its own.</p><h2>What to do this week</h2><p>If you are in the 1 to 100 phase and want to start, this is the smallest useful version.</p><ol><li><p>Pick one folder that already has a good signal. ADRs, design critique notes, component specs, research summaries, or support tickets.</p></li><li><p>Install and index it with <strong><a href="https://github.com/tobi/qmd">QMD</a></strong>: <code>npm install -g @tobilu/qmd</code>, add the folder as a collection, then run <code>qmd embed</code>.</p></li></ol><pre><code><code>npm install -g @tobilu/qmd
qmd collection add ~/design-system/decisions --name decisions
qmd embed</code></code></pre><ol start="3"><li><p>Run five real questions against it, using questions your team actually asks instead of demo questions.</p></li><li><p>Look at the misses. A miss means one of two things: the document is missing, or the document exists but the language is too vague to retrieve.</p></li><li><p>Write the missing decisions down. Start with the ones you are tired of explaining.</p></li><li><p>Add retrieval to the agent. Call <code>qmd query</code> directly through your agent&#8217;s shell tool, or add a pre-prompt hook that injects the top results as context.</p></li></ol><p>You will know it is working when the agent stops asking you obvious things and starts reminding you of decisions you forgot you made.</p><div><hr></div><p>Start with the invisible column. Decisions, critiques, drift, rejections. Make one folder searchable and ask real questions.</p><p>QMD is only the first step. It tells you whether your corpus has signal.</p><p>Next week, I want to go one layer deeper: data labeling. Once you know which memories matter, the next question is how to label them so agents can use them reliably.</p><p>The design system is no longer the deliverable. It is the dataset.</p><p>What part of your invisible column would you wire in first? Let me know below &#128522;</p><p></p><p>Enjoy exploring &#128588;</p><p>Romina</p><div><hr></div><p><strong>Explore on your own</strong></p><p>&#128279; <a href="https://github.com/tobi/qmd">QMD by Tobi L&#252;tke (GitHub)</a>. Local hybrid search exposed as MCP.</p><p>&#128279; <a href="https://gamgee.ai/blogs/tobi-lutke-qmd-local-semantic-search/">Why Tobi L&#252;tke built QMD (Gamgee)</a>. Background on the tool&#8217;s reasoning.</p><p>&#128279; <a href="https://www.youtube.com/watch?v=KzqpK1uCczw">How to Build for AI Agents and a Claude Code Second Brain in 25 Min, Peter Yang</a>. Useful context on using QMD with Claude Code.</p><p>&#128279; <a href="https://www.theverge.com/tech/930447/microsoft-claude-code-discontinued-notepad">Microsoft starts canceling Claude Code licenses, The Verge</a>. Reporting on Microsoft moving engineers from Claude Code to Copilot CLI.</p><p>&#128279; <a href="https://www.techmeme.com/260414/p46#a260414p46">Uber CTO AI budget coverage, Techmeme / The Information</a>. Summary of reporting on Uber&#8217;s AI coding budget overrun.</p><p>&#128279; <a href="https://www.axios.com/2026/04/26/ai-cost-human-workers">AI can cost more than human workers now, Axios</a>. Source for Bryan Catanzaro&#8217;s compute-cost quote.</p><p>&#128279; <a href="https://www.gartner.com/en/newsroom/press-releases/2026-03-25-gartner-predicts-that-by-2030-performing-inference-on-an-llm-with-1-trillion-parameters-will-cost-genai-providers-over-90-percent-less-than-in-2025">Gartner inference cost forecast</a>. Forecast on token cost decline and higher agentic token demand.</p><p>&#128279; <a href="https://www.pymnts.com/artificial-intelligence-2/2026/goldman-sachs-predicts-ai-agents-will-increase-tech-cash-flow/">Goldman Sachs token demand coverage, PYMNTS</a>. Reporting on Goldman Sachs&#8217; forecast for agentic AI token consumption.</p><p>&#128279; <a href="https://metr.org/blog/2026-1-29-time-horizon-1-1/">Time Horizon 1.1, METR</a>. Source for the updated task-completion time horizon data.</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Figma Variables for Complex Multi-Brand Systems</strong> by Veronica Campana</p><p>Standard tutorials about variables often fall short when it comes to the technical intricacies of enterprise design systems. Drawing from my work building the <strong>Index Design System</strong> for <strong><a href="https://www.dowjones.com/">Dow Jones</a></strong>, this article details the layered variable architecture we developed to manage high-level complexity without sacrificing the designer experience.</p><p><strong>&#128279; <a href="https://medium.com/@campanaveronica1/figma-variables-for-complex-multi-brand-systems-618845ac7ae6">Link</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Agentic Design System - From Chatbot to Orchestration]]></title><description><![CDATA[Why agents need contracts, not just components.]]></description><link>https://learn.thedesignsystem.guide/p/agentic-design-system-from-chatbot</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/agentic-design-system-from-chatbot</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sun, 10 May 2026 07:43:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MCS3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MCS3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MCS3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MCS3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:562254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.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_!MCS3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!MCS3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3cca961-0bd9-4aa9-95ab-c4a92ef5b549_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Quick note before we dive in. My <strong>Agentic Design Course </strong>is almoooost ready. The &#8220;it has to be amazing&#8221; brain took over, and I kept adding before launch. A few testers are inside it now. It&#8217;s coming in the end of May. &#128525; </p><div><hr></div><p>Most design system teams are preparing for the wrong AI future.</p><p>They are asking:</p><blockquote><p>&#8220;How do we use AI to generate components faster?&#8221;</p></blockquote><p>But the better question is:</p><blockquote><p><strong>&#8220;Can AI understand why this component exists, when to use it, and when not to?&#8221;</strong></p></blockquote><p>That is the real shift.</p><p>The next generation of design systems will not be judged by how many components they have. They will be judged by how well agents can read them, reason with them, and safely act on them.</p><p>In other words, your design system is no longer just for humans. <strong>It is becoming infrastructure for agents.</strong></p><p><a href="https://www.gartner.com/en/newsroom/press-releases/2025-08-26-gartner-predicts-40-percent-of-enterprise-apps-will-feature-task-specific-ai-agents-by-2026-up-from-less-than-5-percent-in-2025">Gartner predicts</a> that 40% of enterprise apps will embed task-specific AI agents by the end of 2026, up from less than 5% in 2025. Gartner also warns about &#8220;agentwashing,&#8221; where ordinary assistants are marketed as agents even when they cannot operate independently.</p><p>That distinction matters.</p><p>Microsoft is already <a href="https://microsoft.design/articles/designs-for-the-frontier-future/">redesigning Fluent</a> around adaptive interfaces that respond to user intent and move from passive UI toward more dynamic systems.</p><p>Meanwhile, many design system teams are still treating AI like a chatbot. Ask a question &#8594; get an answer  &#8594; move on. That is not the future.</p><p>The future is orchestration.</p><div><hr></div><h2>From chatbot to orchestration</h2><p>A chatbot answers. An agent acts. A system of agents coordinates work across tools, files, workflows, and approval gates. That is the shift design system teams need to understand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QXMW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QXMW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 424w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 848w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 1272w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!QXMW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png" width="728" height="299.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:599,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:50184,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QXMW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 424w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 848w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 1272w, https://substackcdn.com/image/fetch/$s_!QXMW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0258038b-c738-4f92-a415-d484aba1a59b_1600x658.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FtYW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FtYW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 424w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 848w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 1272w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!FtYW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png" width="1456" height="571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:571,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105700,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.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_!FtYW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 424w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 848w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 1272w, https://substackcdn.com/image/fetch/$s_!FtYW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28795734-4523-41f3-8f04-2f2fd7c4bd15_2400x941.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>AI in design systems is not just:</strong></p><ul><li><p>&#8220;Write documentation for this component.&#8221;</p></li><li><p>&#8220;Generate a React card.&#8221;</p></li><li><p>&#8220;Summarize our token structure.&#8221;</p></li><li><p>&#8220;Create a Figma variant.&#8221;</p><p></p></li></ul><p>The bigger change happens when<strong> agents can read your design system</strong>, <strong>understand </strong>its rules, <strong>propose </strong>changes,<strong> validate </strong>those changes, and <strong>escalate</strong> risky decisions to humans. That is where the design system stops being a passive library and starts becoming operational infrastructure: not a chatbot, an orchestration layer.</p><p><strong>So, what is an agentic design system?</strong></p><p>An <strong>agentic design system</strong> is a system where AI agents can read, interpret, and apply design decisions with human oversight. Not just generate code from prompts. Not just summarize documentation. Not just create random UI.</p><p>A real agentic design system gives agents enough structure to understand:</p><ul><li><p>what exists,</p></li><li><p>why it exists,</p></li><li><p>when to use it,</p></li><li><p>when not to use it,</p></li><li><p>what rules must be followed,</p></li><li><p>what changes are safe,</p></li><li><p>what changes require approval.</p></li></ul><p>The difference looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g1aw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g1aw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 424w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 848w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 1272w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!g1aw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png" width="1456" height="753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:753,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66772,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.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_!g1aw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 424w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 848w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 1272w, https://substackcdn.com/image/fetch/$s_!g1aw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76285f6b-d9aa-4e2d-8218-591f1b19a3e7_1600x827.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The shift is not from &#8220;human design&#8221; to &#8220;AI design.&#8221; That framing is too shallow. The real shift is from &#8220;Here is a button&#8221; to &#8220;Here are the rules, intent, constraints, accessibility requirements, and usage conditions for this action pattern.&#8221; The button does not magically know what to do. The system does.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2A-r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2A-r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 424w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 848w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 1272w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!2A-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png" width="1456" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97572,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.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_!2A-r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 424w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 848w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 1272w, https://substackcdn.com/image/fetch/$s_!2A-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ccec8-c19d-4bb2-85da-5dd7f0317784_1600x688.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Components become contracts</h2><p>This is the most important mental model.</p><p>In traditional design systems, a component is something you import.</p><p>In an agentic design system, a component becomes a contract between design, code, product intent, accessibility, and behavior.</p><p>A button is no longer just:</p><pre><code><code>&lt;Button variant="primary"&gt;Submit&lt;/Button&gt;</code></code></pre><p>It also carries rules:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wc2R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wc2R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 424w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 848w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 1272w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wc2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png" width="588" height="760.1301059001513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1709,&quot;width&quot;:1322,&quot;resizeWidth&quot;:588,&quot;bytes&quot;:111136,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.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_!Wc2R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 424w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 848w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 1272w, https://substackcdn.com/image/fetch/$s_!Wc2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf29b50-9e59-4f9a-bffb-295cc3f63f11_1322x1709.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Use primary buttons for the main action in a flow.</p></li><li><p>Do not use destructive styling without a confirmation pattern.</p></li><li><p>Maintain a minimum contrast ratio.</p></li><li><p>Preserve keyboard navigation.</p></li><li><p>Use loading states for asynchronous actions.</p></li><li><p>Use platform-appropriate interaction patterns.</p></li><li><p>Escalate if the requested variant does not exist.</p></li><li><p>Do not create one-off styling without checking token availability.</p></li></ul><p>This is what agents need. The better the contract, the safer the agent.</p><p></p><h2>What exists today</h2><p>You do not have to imagine the entire future. The building blocks are already here.</p><p>They are not perfect. They are not fully autonomous. But they are enough to start preparing your design system for agents.</p><h3>1. Figma MCP gives AI access to design context</h3><p>Figma introduced its <a href="https://www.figma.com/blog/introducing-figma-mcp-server/">Model Context Protocol server</a> in 2025. This is a major shift because it allows AI tools to access structured design context directly from Figma.</p><p>The <a href="https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Figma-MCP-server">Figma MCP Server Guide</a> explains how teams can connect supported AI clients to Figma so that models can read design context, including components, variables, styles, layouts, and implementation details.</p><p>This matters because design systems have always struggled with translation. Design lives in Figma. Code lives in GitHub or GitLab. Documentation lives somewhere else. Usage data lives in analytics. Decisions live in people&#8217;s heads. MCP is one way to reduce the copy-paste layer between these worlds. It gives AI tools a bridge into the design source of truth.</p><p>That does not mean agents can safely redesign your system on their own. It means they can finally see more of the system. </p><p>This also explains why the dedicated design-to-code category, like <a href="https://www.animaapp.com/">Anima</a>, <a href="https://www.locofy.ai/">Locofy</a>, <a href="https://www.builder.io/">Builder.io</a>, and <a href="https://v0.dev/">v0</a>, is being absorbed. Each of those tools tried to translate Figma frames into React using its own heuristics. With <strong>MCP,</strong> a general-purpose agent like Claude Code, Cursor, or Codex <strong>can do the same job</strong> and also read your codebase, your tokens, and your existing components in one pass. The bridge is no longer a separate tool. It is whatever agent is already in your workflow.</p><p>The interesting question is no longer &#8220;which design-to-code tool wins.&#8221; It is whether your design system gives any agent enough context to generate code that survives review. That depends on you, not the tool.</p><h3>2. Quality automation is already part of the agentic foundation</h3><p>Many teams already have pieces of agentic infrastructure without calling it that.</p><p>For example:</p><ul><li><p>automated accessibility checks with <a href="https://github.com/dequelabs/axe-core">axe-core</a> and <a href="https://playwright.dev/">Playwright</a>,</p></li><li><p>visual regression testing with <a href="https://www.chromatic.com/">Chromatic</a> or <a href="https://percy.io/">Percy</a>,</p></li><li><p>token validation with stylelint rules,</p></li><li><p>component usage checks in code,</p></li><li><p>Storybook-based documentation and testing,</p></li><li><p>CI pipelines that block broken changes.</p></li></ul><p>These tools are not agents on their own, but they are the guardrails agents need. Without validation, AI just makes output faster. With validation, AI can start working inside a system. That is the difference.</p><h3>3. Agents are already entering engineering workflows</h3><p>Spotify is a useful example, even if it is not a design system case study. In <a href="https://engineering.atspotify.com/2025/11/spotifys-background-coding-agent-part-1">Spotify&#8217;s background coding agent writeup</a>, the team describes how internal agents help with engineering workflows, migrations, and large-scale maintenance work.</p><p>The lesson for design system teams is not &#8220;copy Spotify.&#8221;</p><p>The lesson is this:</p><blockquote><p><strong>Background agents make the most sense when the work is repetitive, rule-based, measurable, and reviewable.</strong></p></blockquote><p>That describes a lot of design system work: token migrations, component cleanup, documentation updates, accessibility checks, usage audits, deprecated prop detection, design-code drift. These are not glamorous tasks, but they are exactly the kind of tasks agents are good at.</p><div><hr></div><h2>What is emerging now</h2><p>The next phase is not full autonomy, it is governed autonomy. Agents propose, humans approve, systems validate, changes are traceable. This is where design systems become much more interesting.</p><p>The point is <strong>not full delegation.</strong> It is delegating just enough that the system moves faster without losing oversight.</p><h3>A designer agent watches Figma for drift</h3><ul><li><p>components missing descriptions,</p></li><li><p>variants that do not follow naming conventions,</p></li><li><p>detached instances,</p></li><li><p>local styles that should use variables,</p></li><li><p>inconsistent spacing,</p></li><li><p>missing accessibility annotations,</p></li><li><p>components that have grown too many variants.</p></li></ul><p>The agent should not automatically redesign everything. It should produce a report, suggest fixes, and escalate risky changes.</p><h3>A developer agent catches token misuse in code</h3><ul><li><p>hard-coded colors,</p></li><li><p>incorrect token usage,</p></li><li><p>custom components duplicating system components,</p></li><li><p>deprecated props,</p></li><li><p>inconsistent imports,</p></li><li><p>missing tests,</p></li><li><p>components that do not match Figma specifications.</p></li></ul><p>Again, the value is not blind automation. The value is reducing the invisible drift between design and implementation.</p><h3>A documentation agent stops your docs from rotting</h3><ul><li><p>component usage guidelines,</p></li><li><p>variant tables,</p></li><li><p>accessibility notes,</p></li><li><p>examples,</p></li><li><p>changelogs,</p></li><li><p>migration guides,</p></li><li><p>design token references.</p></li></ul><p>This is one of the easiest places to start because the risk is relatively low.</p><h3>A QA agent runs the boring checks before merge</h3><ul><li><p>accessibility tests,</p></li><li><p>visual regression tests,</p></li><li><p>keyboard interaction tests,</p></li><li><p>responsive behavior checks,</p></li><li><p>token compliance,</p></li><li><p>browser compatibility,</p></li><li><p>Storybook build validation.</p></li></ul><p>This is where agentic systems become practical, because it can run boring checks consistently and tell the team where attention is needed.</p><h3>Orchestration is what makes it agentic, not chatbot</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N5qS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N5qS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 424w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 848w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 1272w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!N5qS!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png" width="1200" height="317.3076923076923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:385,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:100029,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N5qS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 424w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 848w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 1272w, https://substackcdn.com/image/fetch/$s_!N5qS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb96876f-1abc-44df-9235-2ae77b57ac74_2400x635.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The orchestrator is the most important part.</p><p><strong>It coordinates the agents and decides:</strong></p><ul><li><p>which changes are safe to automate,</p></li><li><p>which changes need review,</p></li><li><p>who should approve what,</p></li><li><p>which tests must pass,</p></li><li><p>when to create a pull request,</p></li><li><p>when to roll back,</p></li><li><p>when to escalate.</p></li></ul><p>You give structured autonomy inside clear boundaries.</p><div><hr></div><h2>What may come next</h2><p>By 2027 and 2028, design systems may operate very differently.</p><p>But this future will not arrive evenly. </p><p>Some teams will still be manually updating component docs.</p><p>Others will have agents monitoring usage, generating PRs, and surfacing design system drift before it becomes expensive.</p><p>The difference will not be prompts. It will be<strong> structure.</strong></p><h3>Tokens carry intent, not just values</h3><p>Most tokens today are still treated as values.</p><pre><code><code>{
  "color.primary": "#3B82F6",
  "spacing.md": "16px"
}</code></code></pre><p>That is useful for consistency. But it is not enough for agents. Agents need to understand intent.</p><p><strong><a href="https://polaris-react.shopify.com/design/colors/color-tokens">Shopify Polaris</a> </strong>already shows the direction with semantic tokens that communicate purpose through naming and usage. The next step is richer metadata that agents can read directly.</p><p>For example:</p><pre><code><code>{
  "color.action.primary": {
    "value": "#3B82F6",
    "intent": "primary action",
    "useFor": [
      "main action in a flow",
      "confirmation action",
      "high-priority CTA"
    ],
    "avoidFor": [
      "decorative backgrounds",
      "low-priority actions",
      "destructive actions without confirmation"
    ],
    "accessibility": {
      "minimumContrast": "4.5:1",
      "requiresTextContrastCheck": true
    }
  },
  "spacing.component.md": {
    "value": "16px",
    "intent": "standard internal component spacing",
    "useFor": [
      "default card padding",
      "form field grouping",
      "standard layout rhythm"
    ],
    "responsiveRules": {
      "compact": "spacing.component.sm",
      "comfortable": "spacing.component.lg"
    }
  }
}</code></code></pre><p>This does not require science fiction. It requires better structure. Your tokens become more than reusable values; they become decision support.</p><p></p><h3>Documentation becomes an executable context</h3><p>Most documentation is written for humans. That will still matter. But agentic design systems also need documentation that machines can interpret.</p><p>That means documenting:</p><ul><li><p>intent,</p></li><li><p>constraints,</p></li><li><p>examples,</p></li><li><p>anti-patterns,</p></li><li><p>dependencies,</p></li><li><p>accessibility requirements,</p></li><li><p>edge cases,</p></li><li><p>migration paths,</p></li><li><p>ownership,</p></li><li><p>approval rules.</p></li></ul><p>This is where many design systems are weak. They explain how something looks, but they do not explain how decisions should be made. Agents need decision logic, and that logic has to live somewhere.</p><h3>Runtime adaptation becomes possible, but risky</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8nqX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8nqX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 424w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 848w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!8nqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png" width="1456" height="642" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:642,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209501,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.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_!8nqX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 424w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 848w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!8nqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85cfcff7-b270-4356-b94a-de843e9dc9c2_2400x1058.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The most exciting future is also the easiest one to overhype. Components may adapt at runtime based on context.</p><p>For example:</p><pre><code><code>&lt;Button
  intent="primary-action"
  adaptsTo={["platform", "inputMode", "contrastPreference", "locale"]}
&gt;
  Submit
&lt;/Button&gt;</code></code></pre><p>This kind of adaptation is reasonable.</p><p>A component can respond to:</p><ul><li><p>viewport,</p></li><li><p>platform,</p></li><li><p>input method,</p></li><li><p>language,</p></li><li><p>motion preference,</p></li><li><p>contrast preference,</p></li><li><p>density preference,</p></li><li><p>accessibility settings.</p></li></ul><p>That is helpful, but some forms of adaptation are much more sensitive. For example:</p><ul><li><p>adapting based on user hesitation, emotional state, conversion probability, inferred confidence, behavioral vulnerability.</p></li></ul><p>That is where teams need governance.</p><p>The question is not only:</p><blockquote><p>&#8220;Can the system adapt?&#8221;</p></blockquote><p>The better question is:</p><blockquote><p><strong>&#8220;Should it adapt, who benefits, and how do we prevent harm?&#8221;</strong></p></blockquote><p></p><p>Agentic design systems will need more than tokens and components. They will need ethics, permissions, audit trails, and product principles. Otherwise, adaptive UI becomes manipulation with better tooling.</p><div><hr></div><h2>What can go wrong</h2><ul><li><p>Agents can optimize locally while breaking the broader product experience.</p></li><li><p>A developer agent might clean up code but break design intent.</p></li><li><p>A documentation agent might confidently describe a component incorrectly.</p></li><li><p>A designer agent might suggest consistency where the product actually needs difference.</p></li><li><p>Without governance, agents can create drift faster than humans can notice it.</p></li></ul><p><strong>Design debt at machine speed</strong></p><p>AI does not magically fix weak systems; it amplifies them. If your components are poorly named, your tokens are inconsistent, and your docs are outdated, agents will inherit that mess. Bad metadata creates bad output faster.</p><p><strong>False confidence</strong></p><p>AI-generated documentation often sounds correct even when it is wrong, and that is dangerous. Design system documentation is not just content, it is instruction. If agents and teams rely on incorrect guidance, the damage spreads quickly.</p><p><strong>UX manipulation</strong></p><p>Runtime adaptation can improve usability. It can also cross a line. If the system changes UI based on inferred hesitation, conversion likelihood, or emotional state, teams need clear product and ethics review. Not every adaptive pattern is user-centered. Some are just business pressure wearing a nice interface.</p><p><strong>Governance gaps</strong></p><p>Agentic systems need:</p><ul><li><p>approval rules,</p></li><li><p>audit logs,</p></li><li><p>rollback mechanisms,</p></li><li><p>permission levels,</p></li><li><p>test gates,</p></li><li><p>ownership models,</p></li><li><p>escalation paths.</p></li></ul><p>Without these, &#8220;agentic&#8221; becomes another word for &#8220;uncontrolled.&#8221;</p><p><strong>The goal is not to make agents autonomous everywhere.</strong> The goal is to decide where autonomy is safe, useful, and measurable.</p><div><hr></div><h3>Figma becomes a control surface</h3><p>Figma is moving from a visual design tool toward a design system control surface.</p><p>That could include:</p><ul><li><p>managing component libraries,</p></li><li><p>defining variables and modes,</p></li><li><p>adding semantic metadata,</p></li><li><p>previewing generated UI,</p></li><li><p>reviewing agent-proposed changes,</p></li><li><p>connecting design context to code tools,</p></li><li><p>helping humans understand what agents are doing.</p></li></ul><p>Figma is not the entire agentic system, but it can become one of the most important human interfaces into that system.</p><h3>Visual judgment still matters</h3><p>AI can generate layouts. That does not mean it understands taste, brand, timing, emotion, or product strategy. Designers still make the decisions that require judgment:</p><ul><li><p>what should feel premium,</p></li><li><p>what should feel calm,</p></li><li><p>what should feel urgent,</p></li><li><p>where consistency helps,</p></li><li><p>where consistency hurts,</p></li><li><p>when to follow the system,</p></li><li><p>when to evolve the system.</p></li></ul><p>The more AI generates, the more valuable human judgment becomes, not less.</p><h3>Designers move from making variations to defining intent</h3><p>Designers will spend less time manually producing every variation. They will spend more time defining:</p><ul><li><p>intent,</p></li><li><p>behavior,</p></li><li><p>constraints,</p></li><li><p>examples,</p></li><li><p>quality bars,</p></li><li><p>governance rules,</p></li><li><p>evaluation criteria,</p></li><li><p>approval models.</p></li></ul><p>The designer becomes less of a component factory and more of a system architect.</p><div><hr></div><h2>Why structure beats prompts</h2><p>The companies that win will be the ones that prepare their design systems for machine interpretation. That means they will:</p><h3>1. Structure components for AI consumption</h3><p>They will document not only what a component is, but how it should be used.</p><p>They will define: intent, variants, anatomy, accessibility, dependencies, anti-patterns, product examples, implementation rules.</p><h3>2. Add intent to tokens</h3><p>They will move beyond raw values and primitive naming.</p><pre><code><code>{
  "color.action.primary": {
    "value": "#3B82F6",
    "intent": "primary action",
    "useFor": ["main CTA", "confirmation"],
    "avoidFor": ["decoration", "destructive actions"]
  }
}</code></code></pre><p>Agents need meaning. Semantic structure gives them that meaning.</p><h3>3. Build feedback loops</h3><p>They will connect design system decisions to real product usage.</p><p>For example:</p><ul><li><p>Which components are used most?</p></li><li><p>Which components are duplicated?</p></li><li><p>Which tokens are overridden?</p></li><li><p>Which variants are missing?</p></li><li><p>Which patterns create accessibility issues?</p></li><li><p>Which docs are most visited?</p></li><li><p>Which components create the most support questions?</p></li></ul><p>This is where design systems become measurable, not just maintained. Improved.</p><h3>4. Use agents for boring, high-value work</h3><p>The first useful agents will not be magical design partners. They will be boring, and that is good. They will: detect drift, update docs, open migration PRs, flag accessibility issues, find token misuse, summarize component usage, generate changelogs, and suggest cleanup tasks.</p><p>Boring is where trust starts.</p><div><hr></div><h2>What to do this week</h2><p><strong>1. Turn one component into a contract</strong></p><p>Pick your most-used component. Write a one-page contract with five sections: intent, variants, rules, accessibility, anti-patterns. A markdown file is enough. Start with one component. Not fifty.</p><p><strong>2. Add intent metadata to five tokens</strong></p><p>Pick your five most-used semantic tokens. For each, add what it is for, what it is not for, and the accessibility requirement. JSON, README, or doc page. Whatever you already have.</p><div><hr></div><p>Tools change. Structure compounds.</p><p>Agents are leverage. Leverage applied to a weak system breaks it faster. Leverage applied to a readable system builds compounding advantage.</p><p>The prompt is not the moat. <strong>The structure is. </strong></p><p></p><p>Enjoy experimenting. &#128588;</p><p>Romina</p><div><hr></div><p><strong>Mentioned links</strong></p><p><a href="https://www.gartner.com/en/newsroom/press-releases/2025-08-26-gartner-predicts-40-percent-of-enterprise-apps-will-feature-task-specific-ai-agents-by-2026-up-from-less-than-5-percent-in-2025">Gartner: 40% of Enterprise Apps Will Feature AI Agents by 2026</a></p><p><a href="https://microsoft.design/articles/designs-for-the-frontier-future/">Microsoft Design: Designs for the Frontier Future</a></p><p><a href="https://www.figma.com/blog/introducing-figma-mcp-server/">Figma: Introducing Figma MCP Server</a></p><p><a href="https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Figma-MCP-server">Figma Help: Guide to the Figma MCP Server</a></p><p><a href="https://www.figma.com/resource-library/what-is-mcp/">Figma: What is Model Context Protocol?</a></p><p><a href="https://polaris-react.shopify.com/design/colors/color-tokens">Shopify Polaris: Color Tokens</a></p><p><a href="https://engineering.atspotify.com/2025/11/spotifys-background-coding-agent-part-1">Spotify Engineering: Spotify&#8217;s Background Coding Agent</a></p><p><a href="https://carbondesignsystem.com/elements/color/tokens/">IBM Carbon: Color Tokens</a></p><p><a href="https://github.com/carbon-design-system/stylelint-plugin-carbon-tokens">IBM Carbon: stylelint-plugin-carbon-tokens</a></p><p><a href="https://www.animaapp.com/">Anima</a></p><p><a href="https://www.locofy.ai/">Locofy</a></p><p><a href="https://www.builder.io/">Builder.io</a></p><p><a href="https://v0.dev/">v0 by Vercel</a></p><p><a href="https://www.chromatic.com/">Chromatic Visual Testing</a></p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P-6W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P-6W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 424w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 848w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 1272w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!P-6W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png" width="1456" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2677031,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.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_!P-6W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 424w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 848w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 1272w, https://substackcdn.com/image/fetch/$s_!P-6W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9789fd59-7fc8-4541-a2fa-168c990b3596_3024x1644.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Design System Report 2026 &#128279; <a href="https://report.zeroheight.com/">Download the report </a></strong></p><p>If you want a baseline for what "normal" looks like, read <strong><a href="https://zeroheight.com/">Zeroheight's State of Design Systems report</a>.</strong> 147 companies surveyed. It is the only annual data I trust on how teams actually work, not how they say they work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Re9W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Re9W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 424w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 848w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Re9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png" width="1456" height="748" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:748,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4438540,&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://learn.thedesignsystem.guide/i/196313960?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.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_!Re9W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 424w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 848w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!Re9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c560eee-76ba-453a-864d-6c6c1087811e_2574x1322.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Four AI launches in one week: which ones deserve a place in your stack?]]></title><description><![CDATA[Claude Design, Opus 4.7, GPT 5.5 and Image 2.0]]></description><link>https://learn.thedesignsystem.guide/p/four-ai-launches-in-one-week-which</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/four-ai-launches-in-one-week-which</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sun, 26 Apr 2026 08:46:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HgcO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HgcO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HgcO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HgcO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:212820,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.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_!HgcO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!HgcO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dd27343-c210-4927-9ea7-134c6bb5d54b_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Wow, what a week of AI releases! First Claude Design and Opus 4.7, then Image 2 and GPT 5.5 model. I have been using and comparing all of them since launch.</p><p>Anthropic is building the AI-native version of the entire knowledge-worker stack. Claude <strong>Code</strong> for engineering. Claude<strong> Cowork </strong>for the rest of your job. Claude<strong> Design </strong>for anything visual. Opus 4.7 underneath all of it. </p><p><strong>OpenAI</strong> shipped the response in the same week. <strong>GPT 5.5 </strong>for reasoning and long agentic work, easy to talk to, and detailed when the answer lands. <strong>ChatGPT Images 2.0 </strong>for generating images. I feel like everything is possible. I&#8217;m impressed.</p><p>Let&#8217;s start with Anthropic.</p><div><hr></div><h2>Opus 4.7: the model underneath</h2><p>Whenever a new model comes out, I run the same tasks to see what has improved. With this model, I can say that at the start, the model felt faster than 4.6. But 2 days ago, Anthropic admitted that Opus 4.6 was made slower in March.</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/ClaudeDevs/status/2047371123185287223?s=20&quot;,&quot;full_text&quot;:&quot;Over the past month, some of you reported Claude Code's quality had slipped. We investigated, and published a post-mortem on the three issues we found.\n\nAll are fixed in v2.1.116+ and we&#8217;ve reset usage limits for all subscribers.&quot;,&quot;username&quot;:&quot;ClaudeDevs&quot;,&quot;name&quot;:&quot;ClaudeDevs&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/2044472418815893504/xf14RxM8_normal.png&quot;,&quot;date&quot;:&quot;2026-04-23T17:44:48.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:1696,&quot;retweet_count&quot;:2316,&quot;like_count&quot;:33769,&quot;impression_count&quot;:4639448,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/yklnss/status/2047375765252329594?s=20&quot;,&quot;full_text&quot;:&quot;<span class=\&quot;tweet-fake-link\&quot;>@ClaudeDevs</span> &quot;,&quot;username&quot;:&quot;yklnss&quot;,&quot;name&quot;:&quot;Ostap Kolinets&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/2046282560360329216/k43ZqQQ3_normal.jpg&quot;,&quot;date&quot;:&quot;2026-04-23T18:03:15.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/HGm9Zv3bIAACOEv.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/0IYj2Bt8tn&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:16,&quot;retweet_count&quot;:117,&quot;like_count&quot;:4537,&quot;impression_count&quot;:137096,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>(jokes aside&#8230;)</p><p>After a few days of testing, Opus 4.7 is the first Claude release I cannot call a major upgrade. On design work specifically, it treats each screen as a fresh problem. Ask it to extend an existing pattern, and it forgets the pattern exists two steps later. It does not connect things.</p><p>The individual design suggestions are often better than what 4.6 gave me. But then again, not repeatable without additional instructions. I can run the same prompt twice on 4.7 and get two different directions, neither of which builds on the last. 4.6 was less ambitious per shot, but I could compound it. 4.7 needs more guidance, in every single prompt, to stay on track.</p><p>In practice it means you have to tell 4.7 exactly what you need, where it needs to connect in the existing system, and what the goal is. No shortcuts. No &#8220;you know what I mean.&#8221; Every prompt has to carry its own context.</p><p>Which is, conveniently, the argument I have been making for months in <a href="https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most">code is cheap, understanding is not </a>and <a href="https://learn.thedesignsystem.guide/p/the-self-healing-design-system">The Self-Healing Design System</a>. AI agents get better the more structured context you feed them. 4.7 just turned that from a suggestion into a requirement. If your design system is not yet machine-readable, with tokens, component definitions, and written decisions the model can actually parse, 4.7 will feel punishing. If it is, 4.7 is the first model that actually rewards the investment.</p><ul><li><p><strong>Coding wins</strong> across every Anthropic benchmark (CursorBench, Rakuten-SWE-Bench, their internal 93-task eval, Databricks OfficeQA Pro).</p></li><li><p><strong>A reasoning regression</strong> on NYT Connections: 94.7% down to 41.0%. A 53-point drop is not a rounding error.</p></li><li><p><strong>Stricter instruction-following.</strong> Per Anthropic&#8217;s migration guide: &#8220;4.7 takes the instructions literally and will not silently generalize.&#8221;</p></li><li><p><strong>Price stays flat</strong> at $5 per million input tokens and $25 per million output tokens.</p></li><li><p><strong>Effective cost is slightly up</strong> because the new tokenizer consumes 1.0 to 1.35 times more tokens per input.</p><p></p></li></ul><p>Plus, two new features &#8594;</p><ul><li><p><strong>Adaptive thinking</strong> replaces fixed thinking budgets. Set <code>thinking: {type: 'adaptive'}</code> and the model picks depth per sub-task.</p></li><li><p><strong>Extra high effort (</strong><code>xhigh</code><strong>)</strong> is a new tier between high and max. Many of the &#8220;Opus 4.7 is slow&#8221; complaints come from people reflexively maxing out effort. xhigh is usually the right answer.</p></li></ul><p>My working rule. If you are on Pro and you are not doing engineering-grade work, default to Opus 4.6 for chat, Opus 4.7 only where reasoning depth pays for itself. For design-system work, Opus 4.7 is worth it, but only if you write precise prompts and use plan mode before execution. The best combo right now is Opus 4.7 for planning and then using GPT 5.5. (More about this below).</p><div><hr></div><h2>Claude Design: where your design system actually goes next</h2><p><strong><a href="http://claude.ai/design">Claude Design</a></strong>, launched April 17, 2026, as a research preview. Anthropic&#8217;s own case studies claim that the final project is done with way fewer prompts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qP-I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qP-I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 424w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 848w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 1272w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!qP-I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png" width="1456" height="901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163983,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.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_!qP-I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 424w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 848w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 1272w, https://substackcdn.com/image/fetch/$s_!qP-I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f765786-7aa5-4470-a5fc-1c4ca4ac92f4_1956x1211.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Figma&#8217;s valuation dropped</strong> around $730M (4.26%) on the day Claude Design launched. Anthropic&#8217;s CPO resigned from Figma&#8217;s board three days before the announcement. </p><p>It is by far the easiest tool to pick up if you are new to AI. It is also a research preview with real gaps. </p><p>Here is what it actually does.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tY-J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tY-J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 424w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 848w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 1272w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tY-J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png" width="1134" height="987" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:987,&quot;width&quot;:1134,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121327,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.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_!tY-J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 424w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 848w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 1272w, https://substackcdn.com/image/fetch/$s_!tY-J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e878b10-952b-4fed-8da7-b6045c71e459_1134x987.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>The interface.</strong> </h3><p><strong>Four starting templates: </strong>Prototype, Pitch Deck, From Template, and Design System. </p><p><strong>Six inputs:</strong> images, text, codebase links, document uploads, web captures, saved design systems. </p><p><strong>Four refinement tools:</strong> inline comments on elements, direct text editing, tweak sliders (colors, spacing, typography), and global design changes via chat. Export to PDF, PPTX, HTML, and Claude Code. (Export to Canva is listed on the page. It does not yet work.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9O53!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9O53!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 424w, https://substackcdn.com/image/fetch/$s_!9O53!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 848w, https://substackcdn.com/image/fetch/$s_!9O53!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!9O53!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!9O53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png" width="1456" height="1023" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1023,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:543707,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.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_!9O53!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 424w, https://substackcdn.com/image/fetch/$s_!9O53!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 848w, https://substackcdn.com/image/fetch/$s_!9O53!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!9O53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe446443c-81bb-41ca-a271-57a78107d4bc_1719x1208.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The workflow that matters to most.</strong> </p><p>Upload your <strong>design system,</strong> either as a Figma file, a GitHub repo, or a DESIGN.md file. <strong>Claude Design </strong>generates new work that respects your tokens. There is already a free repository at getdesign.md with DESIGN.md files for brands like Mastercard, Airbnb, and Ferrari. That tells you where this is heading.</p><p>I fed it our UI kit. It took around 10 minutes and burned a lot of tokens. The output was different from what I got piping Figma through MCP into Claude Code which surprised me. You see a preview of the interactive components immediately, and they are somewhat real. I would put them at around 70% Figma to code parity. </p><p><strong>Compared to Figma Make</strong>, the gap is not subtle. Claude Design is faster, the range of outputs is wider, and the starting options are way more useful (also compared to Lovable, v0, &#8230;.).</p><p>Figma Make runs on Sonnet 4.5. Claude Design runs on Opus 4.7, with vision at 2,576 pixels and 3.75 megapixels, roughly three times the resolution of previous Claude models. The tool Figma is paying Anthropic to host is running on the slower, lower-vision model. The tool Anthropic ships directly is on the flagship. </p><p>Figma Make gives you a handful of layout variations inside the Figma canvas. Claude Design generates interactive pages, animated videos, pitch decks, mobile apps, and a first-draft design system in the same few minutes, and exports to HTML, PDF, or PPTX, or hands off directly to Claude Code. </p><p>If you are using Claude Code and have set up the skills, MCPs, then going to Claude Design feels like going back a few steps when you want to make prototypes. </p><p><strong>Use cases, ranked by how much I trust them today:</strong></p><ol><li><p><strong>Prototypes.</strong> If you are new to AI, it will be easy to start and get </p></li><li><p><strong>Landing pages.</strong> Give it a reference URL and a tone. &#8220;Recreate this product page, but make it tongue-in-cheek&#8221; gets you 80% of the way there in four minutes.</p></li><li><p><strong>Pitch decks.</strong> Use Claude (chat) to iterate the copy first. Paste the copy into Claude Design and ask for a deck or animated video. </p></li><li><p><strong>Mobile app mockups.</strong> Claude Design takes screenshots of its own output and fixes overlapping text on its own.</p><p></p></li></ol><p><strong>My complaint list:</strong></p><ul><li><p><strong>Token cost is brutal.</strong> A mobile app with a full design system can burn a Pro plan&#8217;s daily quota in a single prompt. </p></li><li><p><strong>Output quality is inconsistent.</strong> Abstract illustrations are hit or miss. Expect to regenerate.</p></li><li><p><strong>No Figma-level granular control.</strong> You can tweak palettes, fonts and layout, but you cannot move a single element five pixels without prompting (which takes more time and tokens).</p></li><li><p><strong>Export to Canva is listed but broken.</strong></p></li></ul><div><hr></div><p>Now let&#8217;s go to OpenAI releases.</p><h3>ChatGPT Image 2.0</h3><p>My observations:</p><ul><li><p>Visualizations are waaaay better than before;</p></li><li><p>It understands styles and can replicate them in a better way</p></li><li><p>Endless possibilities in doing styles (Anime, 90s video games, amateur photos&#8230; practically anything) </p></li></ul><p><strong>Some examples I did: </strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;e96e1b3a-088a-4d3c-bb5c-7a5e5c6c8afd&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Create an illustrated, playful map of Sardinia with sport activities</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vkzO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vkzO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!vkzO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3321897,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vkzO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vkzO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b63251-fa0a-441d-9b42-47389103de87_1024x1536.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c2Uk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c2Uk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 424w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 848w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 1272w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!c2Uk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png" width="1444" height="1089" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1089,&quot;width&quot;:1444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2675688,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.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_!c2Uk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 424w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 848w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 1272w, https://substackcdn.com/image/fetch/$s_!c2Uk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c0f33bb-845d-45fd-88a1-901475736053_1444x1089.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;f3b99b41-0c79-4773-b506-370a2db77adc&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Amateur photograph of a family portrait, on the beach in Italy, amateur composition, candid</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wKvo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wKvo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!wKvo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2314254,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wKvo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!wKvo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40b29a86-5612-458d-a628-999e471c0c14_1448x1086.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;bf3b6963-954d-4de5-a0b7-ae2b1555211f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Design a full-page modern website homepage for a crochet courses platform.

Style: cozy, warm, soft, playful, handmade aesthetic. Feminine but not childish. Inspired by Scandinavian + Japanese calm design mixed with craft culture. Clean but emotional.

Visual direction:

Soft pastel color palette (peach, cream, sage green, dusty blue, warm beige)
Subtle paper texture background
Hand-drawn floral illustrations, small birds, yarn icons, hearts
Rounded cards, soft shadows, organic shapes
Slightly imperfect, handmade feeling (not too polished)
Editorial composition with strong hierarchy

Tone:

Warm, inviting, supportive
Focus on creativity, calmness, and joy
Feels like a safe, cozy space

Avoid:

Corporate SaaS look
Sharp edges or harsh colors
Overly trendy AI/glossy aesthetics</code></pre></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Rne!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Rne!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 424w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 848w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Rne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png" width="941" height="1672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0137c63-c93f-4819-812e-cf938e643de2_941x1672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1672,&quot;width&quot;:941,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2316742,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.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_!4Rne!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 424w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 848w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 1272w, https://substackcdn.com/image/fetch/$s_!4Rne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0137c63-c93f-4819-812e-cf938e643de2_941x1672.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/fMinZhou/status/2047214663721681288?s=20&quot;,&quot;full_text&quot;:&quot;GPT Image 2 is insanely good...I generated a 360&#176; equirectangular panorama in Happycapy with just a skill + prompt.  \n\nStep 1: Select the generate-image skill  \n\nStep 2: Enter a prompt like: &#8220;Use a frontend 360 viewer to display an equirectangular image of [&#8230;] using the &quot;,&quot;username&quot;:&quot;fMinZhou&quot;,&quot;name&quot;:&quot;Min Zhou&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/2001938622401183744/vEPFQZe0_normal.jpg&quot;,&quot;date&quot;:&quot;2026-04-23T07:23:05.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_1028,c_limit,q_auto:best/l_twitter_play_button_rvaygk,w_88/zisumyyid9yb1ydx3pmv&quot;,&quot;link_url&quot;:&quot;https://t.co/0ktJg7F97O&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:65,&quot;retweet_count&quot;:475,&quot;like_count&quot;:4355,&quot;impression_count&quot;:321654,&quot;expanded_url&quot;:null,&quot;video_url&quot;:&quot;https://video.twimg.com/amplify_video/2047213896185110528/vid/avc1/1394x720/GuMlqwQOE5EbQP7c.mp4&quot;,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><h3>GPT 5.5</h3><p>OpenAI shipped GPT 5.5 a few days later, and it is the first model of theirs I would put next to Opus 4.7 without flinching.</p><p>5.5 is a steep change in coding, and it is easy to talk to. That combination is rare. It is slower than Opus in response time. When the response does land, it is more detailed and more structured. Architecture overviews are better. It can work longer without interrupting to ask what you meant.</p><p>It is also a better writer than previous OpenAI models. And it does not just execute the task I gave it. It starts suggesting what might be smart to add or change next. That shift, from &#8220;assistant that replies&#8221; to &#8220;agent that nudges,&#8221; is the real story with 5.5.</p><p><strong>Where 5.5 pulled the most weight this week:</strong></p><ul><li><p><strong>Agentic knowledge work.</strong> This is the first OpenAI model that manages to be both a stellar senior engineer and a tool you can point at a spreadsheet, a research doc, or a rough brief. Crazy fast. Amazing inside the Codex desktop app.</p></li><li><p><strong>Long-running tasks.</strong> Opus 4.7 still needs hand-holding every few steps on big jobs. 5.5 runs further on its own. During the testing week, much of my team switched from Claude Code to Codex on GPT 5.5 for exactly this reason.</p></li><li><p><strong>Writing drafts that do not read like model output.</strong> The writing regression I keep hitting on 4.7 is not there on 5.5.</p></li></ul><p><strong>Where Opus 4.7 still wins:</strong></p><ul><li><p><strong>Plan quality.</strong> Opus 4.7&#8217;s plans have sharper insight and better attention to detail. If the quality of the plan decides the quality of the build, Opus is still my pick. </p></li><li><p><strong>Front-end and full-stack product work.</strong> 5.5 gets close. Opus is still a step ahead.</p></li><li><p><strong>Vibe coding without a plan.</strong> 5.5 is a great vibe coder with a plan. Without one, it is worse than Opus.</p></li></ul><p><strong>The working split.</strong> Opus 4.7 for the plan and for design-heavy front-end work. GPT 5.5 inside Codex for long agentic runs, research reading, and writing drafts. I switch between them inside the same task now, which is a strange feeling after two years of running almost exclusively on Claude.</p><p>For design-system work specifically, the pairing I am settling into is: plan in Claude with Opus 4.7, execute long audits and front-end build in Codex with 5.5, back to Claude for the doc generation.</p><p><strong>Image 2 inside Codex.</strong> </p><p>The pairing I did not expect. Image 2 running inside Codex reads a whole database quickly, and connects to plugins without the usual setup tax. For anything that spans a DB and a handful of integrated tools, this is already the fastest setup I have used this week. I am still figuring out what it means for design-system work specifically, but it is the combination I keep reaching for.</p><p>Then I tried and used my <strong><a href="https://tokens-game.vercel.app/">Token Hunter game</a></strong> and applied Image 2 capabilities in Codex.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CNv_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CNv_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 424w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 848w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 1272w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!CNv_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png" width="1456" height="797" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:797,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:211094,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.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_!CNv_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 424w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 848w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 1272w, https://substackcdn.com/image/fetch/$s_!CNv_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F653d01d8-ef0e-4402-b5cf-f660c19ef25b_1656x906.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jji4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jji4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 424w, https://substackcdn.com/image/fetch/$s_!jji4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 848w, https://substackcdn.com/image/fetch/$s_!jji4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!jji4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!jji4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png" width="1456" height="799" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:799,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5864418,&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://learn.thedesignsystem.guide/i/195027941?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.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_!jji4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 424w, https://substackcdn.com/image/fetch/$s_!jji4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 848w, https://substackcdn.com/image/fetch/$s_!jji4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!jji4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c2ee13-dd88-4af8-ac78-ee031433c3ef_3024x1660.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>80/20 rule</h2><p>The same phrase kept coming up in every video and every blog post I read this week. The 90/10 rule. AI generates 90% of the artifact in minutes. The last 10% is a human making colors, copy, and hierarchy choices.</p><p>I would say it is closer to 80/20. And the 20 that is still on me is not just polish. It is foundations, tokens., components, strategy, written design decisions, knowledge graph. </p><p>That is the real shift. Not &#8220;AI replaces designers.&#8221; Not &#8220;Figma is dead.&#8221; Just: <strong>your design system moved one layer up. <a href="https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most">It is your infrastructure. </a></strong></p><p>Happy experimenting, and let me know how it goes. &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>OpenBridge design system (Lit-based web components) OPEN-SOURCED. </strong></p><p>His Royal Highness Crown Prince Haakon and Prince Sverre Magnus of Norway officially launched a comprehensive, open-source code library for the maritime industry.<br><br><strong>Kjetil Nordby</strong> : "By offering ready-to-use code, we are making it significantly cheaper and easier to adopt the standard for user-friendly, safety-critical design."<br><br>Kjetil Nordby and his team at the Oslo School of Architecture and Design spent eight years building it. 40+ industry, academic, and public partners. <br><br>Now you can easily create user-friendly OpenBridge 6.1 user interfaces for maritime and other industrial workplaces.</p><p>&#128279; <strong><a href="https://github.com/Ocean-Industries-Concept-Lab/openbridge-webcomponents">GitHub</a></strong><br>&#128279; <strong><a href="https://openbridge-jip-storybook.web.app/?path=/docs/introduction-introduction--docs">Storybook</a></strong><br>&#128279; <strong><a href="https://www.figma.com/community/file/1468161149546275705">Figma file </a></strong><br>&#128279;<strong> <a href="https://www.openbridge.no/">Official site</a></strong></p>]]></content:encoded></item><item><title><![CDATA[What I Learned from Analyzing 158 Design Systems]]></title><description><![CDATA[What gets built first, what gets skipped, and what it costs you.]]></description><link>https://learn.thedesignsystem.guide/p/i-analyzed-158-design-systems-heres</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/i-analyzed-158-design-systems-heres</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sun, 12 Apr 2026 05:58:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Xkrk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xkrk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xkrk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xkrk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:226928,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.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_!Xkrk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!Xkrk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5b015e1-9d35-4ba7-9248-e208d2976115_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I spent a few years collecting public design systems into my Airtable. I tracked what each system actually ships: tokens, GitHub repos. I have now used AI and gathered valuable insights. </p><p>The finding that surprised me most: almost no design system ships all the &#8220;layers&#8221;. They all make trade-offs. And the trade-offs follow a pattern.</p><div><hr></div><h2>The seven layers of a design system</h2><p>A design system can serve its users in seven ways. I checked which of these layers each system makes publicly available:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!120l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!120l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 424w, https://substackcdn.com/image/fetch/$s_!120l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 848w, https://substackcdn.com/image/fetch/$s_!120l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 1272w, https://substackcdn.com/image/fetch/$s_!120l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!120l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png" width="780" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56999,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.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_!120l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 424w, https://substackcdn.com/image/fetch/$s_!120l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 848w, https://substackcdn.com/image/fetch/$s_!120l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 1272w, https://substackcdn.com/image/fetch/$s_!120l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a067d71-20d7-4009-8f2b-b74908c9b422_780x751.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>What this tells you </h3><p>This measures <strong>how many layers a system makes available</strong>, not how good any layer is. It also only measures what&#8217;s <strong>public</strong>. Some systems have excellent internal Figma libraries, Storybooks, and docs that score low here because the outside world can&#8217;t see them. I&#8217;m not scoring quality. I&#8217;m mapping coverage.</p><h3>A note on the dataset</h3><p>The <strong>158 systems</strong> were collected from public sources: documentation sites, GitHub repositories, Figma community files, npm registries, and design system directories. Each entry was manually verified against its live URL. Some systems required deeper digging than others.</p><div><hr></div><h2>What the data shows</h2><p>89% have code examples. That&#8217;s the first layer teams build. But after that, each subsequent layer drops off sharply. Only 37% add usage guidelines. Only 21% document accessibility. Only 13% include content guidelines.</p><p>Three systems scored a perfect 7: <strong>Polaris</strong> (Shopify), <strong>Paste</strong> (Twilio), and <strong>eBay Playbook</strong>.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rHRz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 424w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 848w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 1272w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!rHRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png" width="1000" height="139" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:139,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20308,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.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_!rHRz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 424w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 848w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 1272w, https://substackcdn.com/image/fetch/$s_!rHRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc20f89ac-dff0-4a3f-af85-ffb3d96bc463_1000x139.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><div><hr></div><h2>The leaderboard</h2><p>Look at the top. Shopify. Twilio. Workday. Microsoft. Salesforce. These are companies with dedicated design infrastructure teams and years of investment. The gap between them and the average is not small. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s8Mk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s8Mk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 424w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 848w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 1272w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!s8Mk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png" width="724.65625" height="1548.952734375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:2736,&quot;width&quot;:1280,&quot;resizeWidth&quot;:724.65625,&quot;bytes&quot;:229877,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s8Mk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 424w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 848w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 1272w, https://substackcdn.com/image/fetch/$s_!s8Mk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693a6b3e-d801-40a8-bf83-6c7a00189f13_1280x2736.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Accessibility is still a lower priority</h2><p>Only 34 systems explicitly mention accessibility. That&#8217;s 21%.</p><p>4 systems have accessibility <em>issues</em> flagged. Meaning someone noted problems.</p><p>Some of these systems probably have accessible components under the hood. They just don&#8217;t document it or surface it as a priority. But if you don&#8217;t talk about it, your adopters won&#8217;t prioritize it either.</p><div><hr></div><h2>The tech landscape</h2><p>React dominates. But the picture is more interesting than &#8220;React won.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C5jy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C5jy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 424w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 848w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 1272w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!C5jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png" width="1456" height="1372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1372,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107591,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.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_!C5jy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 424w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 848w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 1272w, https://substackcdn.com/image/fetch/$s_!C5jy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0fe5d63-d113-4000-bdf7-d18ec72d6c94_1560x1470.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>React is the default.</strong> More than half of all systems use it. No surprise.</p><p><strong>Web Components are the quiet second wave.</strong> These are not startups experimenting. These are large organizations making a deliberate bet on framework-agnostic components.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0WJS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0WJS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 424w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 848w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 1272w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!0WJS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png" width="1456" height="1733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:564711,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.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_!0WJS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 424w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 848w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 1272w, https://substackcdn.com/image/fetch/$s_!0WJS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82011f9e-c300-42a9-9727-868a9dbb6cf5_2269x2701.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Tailwind is the new entrant.</strong> 8 systems: shadcn/ui, daisyUI, Flowbite, Tremor, HeroUI, Nessie, Nuxt UI, Park UI. All relatively new. All growing fast. The utility-first, copy-paste model is rewriting the distribution rules.</p><p><strong>15 systems support 3+ technologies.</strong> Carbon (IBM) leads with 6: React, Vanilla JS, Angular, Vue, Svelte, Web Components. That&#8217;s not a design system. That&#8217;s a platform.</p><div><hr></div><h2>The Tailwind gap</h2><p>This one surprised me.</p><p>There are 8 Tailwind-based design systems in the dataset: shadcn/ui, daisyUI, Flowbite, Tremor, HeroUI, Nessie, Nuxt UI, Park UI. They are some of the <strong>fastest-growing</strong> projects in the ecosystem. <strong>shadcn/ui alone has 112K GitHub stars.</strong></p><p>But across all 8 systems, not a single one documents accessibility. Not one includes content guidelines. </p><p>This isn&#8217;t a criticism of Tailwind. It&#8217;s a pattern about what happens when the distribution model is &#8220;copy this code.&#8221; The copy-paste philosophy solves the adoption problem brilliantly. But it skips the layers that make a design system more than a component starter kit. When you own the code, nobody is responsible for documenting when to use it, how to make it accessible, or how to write the words inside it.</p><p>The question is whether these systems will fill in those layers as they mature. Or whether the &#8220;you own it, you document it&#8221; model means those layers never get built centrally.</p><div><hr></div><h2>Tone of voice</h2><p>Only 21 systems out of 158 include content guidelines. 13%.</p><p>But look at <em>which</em> 20. Sainsbury&#8217;s. Polaris (Shopify). Atlassian. Lightning (Salesforce). NHS Digital. Pharos (JSTOR). Bolt. Workday Canvas. Paste (Twilio).</p><p>These are retail, fintech, healthcare, government, and enterprise SaaS. Industries where getting the words wrong has consequences. An error message that says the wrong thing in a banking app isn&#8217;t just bad UX. It&#8217;s a <strong>compliance risk. </strong>A healthcare system that uses inconsistent terminology isn&#8217;t just confusing. <strong>It&#8217;s dangerous.</strong></p><p>The systems that ship tone of voice aren&#8217;t doing it because they&#8217;re more thorough than everyone else. They&#8217;re doing it because their industry demands it. Content guidelines aren&#8217;t a &#8220;nice to have&#8221; when regulators read your interfaces.</p><p><strong>But compliance isn&#8217;t the only reason.</strong> When 10 teams use your Button component and each writes different label text, different error messages, different confirmation dialogs, your product speaks in 10 different voices. Content guidelines aren&#8217;t a legal checkbox. They&#8217;re how you keep the experience consistent at scale. Without them, your design system controls how things look but not what they say. That&#8217;s half a system.</p><div><hr></div><h2>The documentation gap</h2><p>89% of systems have code examples. </p><p>But only 37% tell you <em>when</em> to use a component. Only 21% tell you how to make it accessible. Only 13% tell you how to write the content inside it.</p><p>33 systems have code examples but no usage guidelines and no accessibility documentation. They show you <em>how</em> to implement a button. They don&#8217;t tell you <em>which</em> button to use, <em>when</em>, or <em>why</em>.</p><p>A design system without usage guidelines is a component library. A component library without accessibility documentation is a liability.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!caaH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!caaH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 424w, https://substackcdn.com/image/fetch/$s_!caaH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 848w, https://substackcdn.com/image/fetch/$s_!caaH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!caaH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!caaH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png" width="1456" height="956" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:956,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77941,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.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_!caaH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 424w, https://substackcdn.com/image/fetch/$s_!caaH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 848w, https://substackcdn.com/image/fetch/$s_!caaH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!caaH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693bdea9-0add-4fe2-822f-0abedb6b6c74_1560x1024.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>How many components do the top systems actually ship?</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2cde9d36-0b13-4ad7-9f33-a1defb810e7b&quot;,&quot;duration&quot;:null}"></div><p>This one gets misunderstood constantly. People equate &#8220;big design system&#8221; with &#8220;lots of components.&#8221; The data says otherwise.</p><p>The range is massive. </p><p>More components is <strong>not </strong>better. More components is more to maintain, more to document, more to keep accessible. The systems that score highest aren&#8217;t the ones with the most components. They&#8217;re the ones that document the components they have.</p><div><hr></div><h2>How many design tokens power these systems?</h2><p>I counted CSS custom properties and documented tokens across the top systems. Some counts are verified from the source code. Others are estimates from documentation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3WaF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3WaF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 424w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 848w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 1272w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!3WaF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png" width="1456" height="1594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1594,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134414,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.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_!3WaF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 424w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 848w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 1272w, https://substackcdn.com/image/fetch/$s_!3WaF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5939d7e1-b067-40c5-92a6-66d18cc957d7_1560x1708.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The popularity contest nobody asked for</h2><p><strong>npm downloads</strong> measure one thing: who gets <code>npm install</code>ed. Open community libraries naturally dominate here. Enterprise and internal systems are consumed behind firewalls, not through public registries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9F2s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9F2s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 424w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 848w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 1272w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!9F2s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png" width="1456" height="1525" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1525,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107541,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.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_!9F2s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 424w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 848w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 1272w, https://substackcdn.com/image/fetch/$s_!9F2s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486a4ec1-d588-41bd-b201-99eef46fe220_1560x1634.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Stars don&#8217;t mean what you think</h2><p>I almost didn&#8217;t include this chart. But the myth of &#8220;more stars = better system&#8221; needs data thrown at 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_!F3iS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F3iS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 424w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 848w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!F3iS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png" width="1456" height="1019" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.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;:74812,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.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_!F3iS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 424w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 848w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!F3iS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5768c0-d5da-4a50-bf91-e9af81cb13c8_1560x1092.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The architecture fingerprint</h2><p>I divided each system&#8217;s token count by its component count. The ratio tells you something fundamental about design philosophy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gj4V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gj4V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 424w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 848w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!gj4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png" width="780" height="1184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92219,&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://learn.thedesignsystem.guide/i/193775936?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.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_!gj4V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 424w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 848w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!gj4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe8a8a90-924b-4230-87bd-c8733d3de2bb_780x1184.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>I&#8217;ve thrown a lot of numbers at you. Here&#8217;s what they change about how I&#8217;d build a design system today.</p><ol><li><p><strong>Write usage guidelines before building more components.</strong> </p></li><li><p><strong>Add accessibility documentation now.</strong></p></li><li><p><strong>Add Storybook before another component.</strong></p></li><li><p><strong>Ship decision logic, not just components.</strong> </p></li><li><p><strong>Content guidelines are required if you&#8217;re regulated.</strong> </p></li><li><p><strong>Fund it like an infrastructure.</strong></p></li></ol><div><hr></div><h2>Why this matters more than it used to</h2><p>I&#8217;ve spent the past year building agentic design systems. AI agents that audit tokens, compose patterns, generate documentation, and open pull requests. I wrote about the architecture in Parts 1, 2 and 3 of that series.</p><p>But here&#8217;s the thing I keep running into: <strong>agents can only work with what&#8217;s documented. </strong>An AI agent can&#8217;t use a component that has no usage guidelines. It can&#8217;t check accessibility if accessibility isn&#8217;t described. It can&#8217;t compose a pattern from a system that only ships code and a landing page.</p><p>Everyone is talking about AI agents for design systems. This data shows that many systems aren&#8217;t ready for a human to use properly, let alone a machine.</p><p>Fix the layers first. The agents will follow. &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>MemPalace / </strong>Free, local AI memory system that stores your entire chat history and makes it searchable across sessions. 96.6% recall, no cloud, works with Claude/Cursor/ChatGPT</p><p>&#128279; <strong><a href="http://github.com/milla-jovovich/mempalace">Link</a></strong></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b66f0c1a-e295-4248-af79-326cf80c0c08&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why your design system is the most important asset in the AI era&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-29T09:18:46.507Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!mqJ1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192390627,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:40,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Self-Healing Design System]]></title><description><![CDATA[Agentic Design Systems, part 3]]></description><link>https://learn.thedesignsystem.guide/p/the-self-healing-design-system</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/the-self-healing-design-system</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sat, 04 Apr 2026 09:40:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!N4qr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N4qr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N4qr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N4qr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:736859,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/193053173?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.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_!N4qr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 424w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 848w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 1272w, https://substackcdn.com/image/fetch/$s_!N4qr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb55d8930-7ee1-422a-bae7-37810c34ffbd_2184x1455.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b66f0c1a-e295-4248-af79-326cf80c0c08&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why your design system is the most important asset in the AI era&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-29T09:18:46.507Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!mqJ1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:192390627,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:40,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>In Part 1 and 2, I made the case that design systems are the semantic layer that makes AI-assisted design possible. The understanding, not the code, is the asset.</p><p>Now let&#8217;s talk about the machinery AND the judgment calls. The architecture, the self-healing loop, what AI genuinely cannot do, and three phases you can start this week.</p><div><hr></div><h2>The architecture</h2><p>This is the architecture I&#8217;ve built over the past year.</p><p>At the center: <strong>Claude Code</strong> as the orchestration layer. Connected via MCP to <strong>Figma</strong> (through my Tidy plugin), to <strong>GitHub</strong>, to <strong>Storybook</strong>, to <strong>PostHog</strong> (analytics) , to <strong><a href="https://go.granola.ai/romina-kavcic">Granola</a></strong> (meeting notes), to <strong>Sentry</strong> for error monitoring, to the <strong>documentation layer</strong>, and to the <strong>Observatory</strong> dashboard.</p><p><strong>&#128075; A note on tooling: </strong></p><p>Claude Code is not the only option here. Because everything connects through MCP, the orchestration layer is swappable. I&#8217;ve tested Cursor, Codex, and other AI coding tools in this setup. <strong>I also run the same exercises </strong>across new models whenever they come out (Gemini, GPT 5.2 through 5.4, Llama, Mistral) to benchmark how they handle token naming, component composition, and system-level reasoning. Claude Code consistently delivered the best results for design system work, particularly in reasoning about component relationships and token semantics. But the architecture doesn&#8217;t lock you in. If a better tool shows up tomorrow, you swap the center, and everything else stays the same. That&#8217;s the point of building on a protocol, not a product.</p><p>The loop is:</p><ol><li><p><strong>Watch.</strong> Detect drift in tokens, components, and docs.</p></li><li><p><strong>Analyze.</strong> Score severity, prioritize fixes.</p></li><li><p><strong>Execute.</strong> Generate PRs, update docs, sync tokens.</p></li><li><p><strong>Observe.</strong> Verify results and loop back.</p></li></ol><p>But here&#8217;s the thing. This architecture only works because the <strong>foundation is solid. </strong>Without clean token naming, without component descriptions, without intent documentation, the agent has nothing meaningful to work with. </p><p></p>
      <p>
          <a href="https://learn.thedesignsystem.guide/p/the-self-healing-design-system">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Why your design system is the most important asset in the AI era]]></title><description><![CDATA[Agentic Design Systems, part 2]]></description><link>https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/why-your-design-system-is-the-most</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sun, 29 Mar 2026 09:18:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mqJ1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mqJ1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mqJ1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mqJ1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:321289,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/192390627?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.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_!mqJ1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!mqJ1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350b8092-d419-4a69-84d9-c3d5b53a9420_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>This year I gave a talk at the Into Design Systems conference called <strong>Agentic Design Systems</strong>. The response genuinely caught me off guard. Thank you to everyone who showed up, stayed engaged, and sent those messages. It means more than you know.</p><p>A year ago, I already presented at IDS and talked about context-aware design systems. A vision. Something we could see coming but couldn&#8217;t quite build yet.</p><p>This year, I came back with tools, numbers, and failures. Real ones.</p><p>This series covers everything from that talk. Not as a transcript, but as something you can actually use. If you&#8217;re building a design system today, or thinking about what AI means for your system, this is for you.</p><p>Let&#8217;s start with the shift that changes everything.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!33eO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!33eO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 424w, https://substackcdn.com/image/fetch/$s_!33eO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 848w, https://substackcdn.com/image/fetch/$s_!33eO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 1272w, https://substackcdn.com/image/fetch/$s_!33eO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!33eO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png" width="1456" height="887" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:887,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:672740,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/192390627?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.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_!33eO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 424w, https://substackcdn.com/image/fetch/$s_!33eO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 848w, https://substackcdn.com/image/fetch/$s_!33eO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 1272w, https://substackcdn.com/image/fetch/$s_!33eO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93e29356-a3ed-419e-8001-2d2eb3ac76e4_1920x1170.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Your design system is infrastructure</h2><p>Before anything else, I need to set one thing straight.</p><p>A design system is not a side project. It is not a nice-to-have. <strong>It is infrastructure.</strong> The same way your CI/CD pipeline is infrastructure. The same way your database is infrastructure.</p><p>And right now, in 2026, design systems are more important than they have ever been. Every product team is shipping faster than ever. AI is generating code at scale. And the only thing standing between your product and total inconsistency is the system that governs it.</p><p>Design systems reduce rework. They enforce brand. They catch accessibility issues before your users do. If you still need to justify your design system to leadership, frame it as infrastructure. Because that&#8217;s what it is.</p><blockquote><p><strong>The design system is the API that allows AI to build your product safely.</strong></p></blockquote><p>That&#8217;s not a metaphor. That&#8217;s literally what&#8217;s happening.</p><div><hr></div><h2>The numbers that should wake you up</h2><p>Let me set the scene with what happened in the 12 months between IDS 2025 and IDS 2026:</p><ul><li><p><strong>28+ frontier models</strong> released by 6 major labs in under 10 months</p></li><li><p><strong>$226 billion</strong> invested in AI. Nearly 2x the year before.</p></li><li><p><strong>84%</strong> of developers now use AI tools daily</p></li><li><p><strong>41%</strong> of all new code written in 2025 was AI-generated</p></li></ul><p>Claude Code hit a <strong>billion</strong> dollars in revenue in under 12 months. The MCP ecosystem went from 100K to 8 million downloads. <strong>Gartner says 40% of enterprise apps will embed AI agents by end of this year.</strong></p><p>This is the environment your design system lives in. Code is being generated faster than anyone can review it.</p><p>And that changes everything about how we think about governance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SfL-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SfL-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 424w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 848w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 1272w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SfL-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png" width="1456" height="721" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:721,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105876,&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://learn.thedesignsystem.guide/i/192390627?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.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_!SfL-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 424w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 848w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 1272w, https://substackcdn.com/image/fetch/$s_!SfL-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff385d360-9631-46f6-9f09-ad13ad497bdd_2880x1427.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>The economics have flipped</h2><p>When code is cheap and understanding it is expensive, architecture must optimize for the impermanence of code.</p><p>We all know by now that developers using AI agents ship faster. Studies show a 39% productivity increase. But the interesting part is where the gain comes from. It's not that people write more code. <strong>The work shifts from syntactic to semantic.</strong> From "how do I write this" to "what should this do and why."</p><p><strong>That&#8217;s exactly the shift design systems need to make.</strong></p><p>A developer can generate a button component in 30 seconds with AI. But that button won&#8217;t know it should use your danger token inside an alert. It won&#8217;t know it should be secondary inside a card. It won&#8217;t respect your spacing scale.</p><p>The code is free. The understanding is the expensive part.</p><p>And that understanding? <strong>That&#8217;s what your design system encodes.</strong> Your tokens, your naming conventions, your component intent, your usage guidelines. That&#8217;s the real asset.</p><p>So when people ask me &#8220;will AI replace design systems?&#8221; I tell them: <strong>AI makes design systems more critical than ever.</strong> Because AI generates code. Design systems generate understanding.</p><h2>How an agent actually works</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!80WC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!80WC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 424w, https://substackcdn.com/image/fetch/$s_!80WC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 848w, https://substackcdn.com/image/fetch/$s_!80WC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 1272w, https://substackcdn.com/image/fetch/$s_!80WC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!80WC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png" width="1456" height="595" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:595,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:301714,&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://learn.thedesignsystem.guide/i/192390627?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.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_!80WC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 424w, https://substackcdn.com/image/fetch/$s_!80WC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 848w, https://substackcdn.com/image/fetch/$s_!80WC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 1272w, https://substackcdn.com/image/fetch/$s_!80WC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F864c4d8c-dfb0-45b5-a0ab-bf420932a4ec_1920x785.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Let me make this concrete. One story runs through the entire talk: <strong>a team needs a destructive confirmation dialog.</strong></p><p>A developer says: &#8220;I need a confirmation dialog for deleting a workspace.&#8221;</p><p>Watch what happens when an agent handles this:</p><ol><li><p><strong>Reading context.</strong> It pulls in your component index, your token structure, your usage guidelines.</p></li><li><p><strong>Thinking.</strong> It knows Dialog exists. It knows Button has a <code>destructive</code> variant. It knows Alert has a <code>warning</code> slot.</p></li><li><p><strong>Planning.</strong> Dialog + Alert + two Buttons. Destructive primary, secondary cancel. <code>color.bg.danger</code> for the action, not <code>color.bg.primary</code>.</p></li><li><p><strong>Acting.</strong> It assembles the pattern, applies the right tokens, and generates the code.</p></li></ol><p>What makes it agentic is three things: <strong>autonomy, tool use, and feedback loops.</strong> It doesn&#8217;t just answer a question. It takes action, observes the result, and adjusts.</p><p>But here&#8217;s the key: <strong>none of this works unless the agent has something to read.</strong> The components need to be described. The tokens need intent. The patterns need reasoning.</p><p>That&#8217;s what the rest of this series is about.</p><div><hr></div><h2>Intent changes everything</h2><p>The flow looks like this:</p><p><strong>Intent</strong> (natural language) -&gt; <strong>Context</strong> (extracted dimensions) -&gt; <strong>System output</strong> (specific guidance)</p><p>&#8220;I need a confirmation dialog for deleting a workspace&#8221; is the intent.</p><p>The system extracts five dimensions from that: component type, action severity, user flow, token scope, platform. These are the lenses the agent looks through.</p><p>The output isn&#8217;t a vague suggestion. It&#8217;s specific: Dialog + Alert + 2 Buttons. <code>color.bg.danger</code> token mapping. &#8220;Always pair with cancel&#8221; rule. A link to the Dialog component in Figma. A suggested composition template.</p><p>The agent doesn&#8217;t guess. It reads your system&#8217;s rules through these context layers.</p><p><strong>This only works if those rules exist.</strong></p><div><hr></div><h2>MCP: USB for AI</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zawM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zawM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 424w, https://substackcdn.com/image/fetch/$s_!zawM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 848w, https://substackcdn.com/image/fetch/$s_!zawM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 1272w, https://substackcdn.com/image/fetch/$s_!zawM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!zawM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png" width="1456" height="703" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:703,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107635,&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://learn.thedesignsystem.guide/i/192390627?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.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_!zawM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 424w, https://substackcdn.com/image/fetch/$s_!zawM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 848w, https://substackcdn.com/image/fetch/$s_!zawM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 1272w, https://substackcdn.com/image/fetch/$s_!zawM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90add88a-21ed-4788-a1df-2eb190cdf134_1920x927.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For any of this to work, the agent needs to connect to your tools. That&#8217;s where MCP comes in.</p><p><strong>Model Context Protocol</strong> is a standard way for AI agents to connect to external tools. Think of it as USB for AI. Instead of building custom integrations for every tool, you expose your tools as MCP servers and any AI agent can use them.</p><p>My most used MCPs: Figma, GitHub, Storybook, Chromatic, Granola, Notion, Jira, Stylelint, Linear, Mintlify. Each one gives the agent a different slice of context.</p><h3>CLI vs MCP: you need both</h3><p>A practical question I get a lot: do I need MCP for everything?</p><p>No. CLI and MCP serve different purposes.</p><p><strong>CLI is for speed.</strong> Direct command execution. Simple setup. No servers, no schemas. Fast experimentation. Designers can start immediately with local tools. Less context overhead, fewer reasoning loops. Great for single-tool workflows, like tasks happening entirely inside Figma.</p><p><strong>Here&#8217;s what CLI looks like in practice. </strong></p><p>I built a <code>token</code> command that resolves Figma token values straight from the terminal:</p><pre><code><code>$ token color.bg.danger
&#8594; #DC2626 (alias: primitives/red-600)</code></code></pre><p><strong>Or composing a full UI pattern with one shell script:</strong></p><pre><code><code>$ ./patterns/run-pattern.sh destructive-confirmation
&#8594; Creating frame in Figma...
&#8594; Dialog + Alert + Button(destructive) + Button(secondary)
&#8594; Tokens bound: color.bg.danger, color.text.on-danger
&#8594; Done. Check your Figma canvas.</code></code></pre><p>No MCP server running. No schema negotiation. Just a direct HTTP call to a Figma plugin that exposes a local API, and the pattern appears on your canvas (will share more in part 3). You can read token values, compose patterns, and run audits without any agent infrastructure. That&#8217;s the power of CLI: you go from zero to useful in minutes.</p><p><strong>MCP is for scale.</strong> When the agent needs to <strong>orchestrate multiple tools.</strong> Connect Figma, GitHub, Storybook, docs, CI in one flow. The agent understands structured design data: components, tokens, variants. Changes propagate end-to-end from design to code to docs. It enables autonomous agents that detect, analyze, plan, and fix. Standardized protocol that runs in CI pipelines. Scales across teams.</p><p><strong>Where MCP shines </strong>is when the <strong>agent needs to connect the dots across tools.</strong> &#8220;A token changed in Figma. Which components use it? Which pages are affected? What&#8217;s the traffic on those pages? Should I open a PR?&#8221; That&#8217;s four different data sources (Figma, GitHub, PostHog, the knowledge graph) orchestrated in one flow. CLI can&#8217;t do that. MCP can.</p><p><strong>CLI for speed. MCP for scale. The best systems use both.</strong> We used both in our setup: Tidy&#8217;s HTTP API for CLI-speed pattern composition, with MCP&#8217;s structured component and token data for the orchestration layer.</p><div><hr></div><h2>The three layers that make components machine-readable</h2><p>This is where most design systems fall short. I see teams with a component library and tokens, but the agent can&#8217;t do anything useful with them because they&#8217;re missing layers.</p><p>There are three layers an agent needs:</p><h3>Layer 1: The Index</h3><p><strong>What exists, what uses what, what depends on what.</strong></p><p>The agent knows Dialog exists. It knows Button has 4 variants. It knows Alert connects to both. This is the relationship map.</p><p>Without the index, the agent is blind.</p><h3>Layer 2: Metadata</h3><p><strong>This is the how and why. </strong></p><p>The component description for Button says: &#8220;use the destructive variant for irreversible actions, always paired with a cancel option.&#8221;</p><p>That single sentence is what told the agent to add a secondary cancel button. Without metadata, the agent knows components exist but not when to use them.</p><h3>Layer 3: Reasoning</h3><p><strong>The selection logic. </strong></p><p>For a confirmation dialog, compose Dialog + Alert + two Buttons. For a login form, compose Input + Input + Button.</p><p>This is the playbook. Without reasoning, the agent assembles random parts.</p><p><strong>Most design systems today have some of layer one, very little of layer two, and almost none of layer three.</strong> That&#8217;s the gap we need to close.</p><p>And closing it is not a year-long project. Writing 554 component descriptions took me one session with AI. </p><h2>Context makes the same component behave differently</h2><p>Here&#8217;s what context-aware means in practice.</p><p>Same component: <strong>Button.</strong> Three different contexts:</p><ul><li><p><strong>In an alert:</strong> use <code>bg-danger</code>. Intent: destructive action. Always pair with a cancel button.</p></li><li><p><strong>In a card:</strong> use <code>bg-neutral</code>. Intent: secondary action. Don&#8217;t compete with page-level CTAs.</p></li><li><p><strong>In the nav:</strong> use <code>bg-brand</code>. Intent: conversion action. One per nav bar maximum.</p></li></ul><p>Same Accordion component. FAQ gets question-phrased headers (&#8221;How do I reset my password?&#8221;). Settings gets noun-phrased headers (&#8221;Notification settings&#8221;).</p><p>The agent writes different docs for each because it knows WHERE the component lives, not just what it is.</p><p>But here&#8217;s what nobody tells you: <strong>if the agent knows where a component lives, it can infer most of this automatically.</strong></p><p>Take Accordion. The agent sees it in FAQ, in Settings, and in Checkout. Same component. Three different contexts. Now it can write three different sets of documentation without anyone asking.</p><p>It figured that out by looking at 34 instances across 6 products. It can generate do/don&#8217;t examples. It can prioritize: a component on homepage and checkout is more critical than one only in admin.</p><p>The agent doesn&#8217;t just know the component spec. It knows the business context. And you get this for free if you map which pages represent which products.</p><div><hr></div><h2>Plant seeds, not trees</h2><p>I showed two videos in the talk. </p><p>First one: <strong>seeds. </strong>You plant them. You water them. You wait. <strong>Growth is slow but it&#8217;s real.</strong></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;58924964-98ae-4aee-b6fb-cbb207a86d6a&quot;,&quot;duration&quot;:null}"></div><p>Second one: <strong>trees.</strong> You buy them fully grown and drop them into your garden. <strong>Looks impressive on day one.</strong></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;1401fa01-6e40-4d71-af07-147dffc1c071&quot;,&quot;duration&quot;:null}"></div><p>Every team I talk to wants the tree. They want the fully autonomous agent that fixes everything. But that&#8217;s not how this works.</p><p><strong>You have to plant seeds. You have to build the foundation first:</strong> the naming conventions, the token structure, the component descriptions, knowledge graph. Then the automation grows on top of it.</p><p><strong>Without structure, AI amplifies noise at scale.</strong> With structure, it amplifies understanding.</p><div><hr></div><h2>What this means for you</h2><p>If you take one thing from this part of the series, let it be this:</p><p><strong>The asset is not just the code. The asset is the understanding.</strong></p><p>Your design system&#8217;s value isn&#8217;t in the React components or the Figma library. It&#8217;s in the naming conventions, the token intent, the component metadata, the usage reasoning, your knowledge graph. That&#8217;s what AI reads. That&#8217;s what makes the difference between a generic button and a button that belongs in your product.</p><p>Start there. </p><p>The rest of the series shows you how.</p><div><hr></div><p><strong>Next up: Part 3: The Self-Healing Design System</strong> where I&#8217;ll show the architecture, the MCP connections, the knowledge graph, and the self-healing loop that catches problems before they ship.</p><p></p><p>Stay tuned,<br>Romina</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Granola</strong></p><p>If you want to make an extra step when setting up an agentic design system, connect meeting notes to Claude via MCP and start using Granola. &#128293;<br>I use <strong>Granola</strong> and as additional data layer.<br><br>Granola is an AI notepad that transcribes your calls in the background. <br><br>NO MEETING BOTS. <br>No weird "AI assistant has joined the call."<br><br>You take notes as you normally would, and <strong><a href="https://go.granola.ai/romina-kavcic">Granola</a></strong> automatically turns them into structured summaries, action items, and next steps. It works on both Mac and Windows. <br><br>But here's where it gets powerful.<br><br>Granola supports MCP (Model Context Protocol). <br>That means your meeting notes flow straight into Claude or ChatGPT as searchable, queryable context. &#129327;<br><br>Instead of digging through old notes, I ask:<br><br>* "What did we decide about the component API last Tuesday?"<br>* "Pull all action items from client calls this month."<br>* "Summarize feedback from our last three design reviews."<br><br>5 seconds, boom, done. &#9989;<br><br>My workflow:<br><br>&#8618;&#65039; Meeting happens. I add quick notes. Granola transcribes in the background.<br>&#8618;&#65039; Meeting ends. Summary, action items, and next steps are ready instantly.<br>&#8618;&#65039; Recipes (pre-made prompts) help me write follow-ups or prep for the next call.<br>&#8618;&#65039; Zapier pushes action items to Linear, Jira, wherever work lives.<br>&#8618;&#65039; MCP connects it all to Claude. Every past conversation becomes a context I can query.<br><br>Try it and thank me later &#9786;&#65039; <strong><a href="https://go.granola.ai/romina-kavcic">I've got a link to a free month </a></strong></p><div><hr></div><p><strong>Recommended read &#8594; UX + AI </strong>written by<strong> </strong><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ileana&quot;,&quot;id&quot;:48566145,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/675d4668-f540-4240-bd26-d0c0600e02a7_1200x1200.jpeg&quot;,&quot;uuid&quot;:&quot;f9ea2581-7aa9-4f03-ba13-6b2297992033&quot;}" data-component-name="MentionToDOM"></span> &#10024;</p><p>This is a space for curious minds who care about how we design, build, and think about digital products in a world shaped by AI. Really recommend you follow Ileana and learn something new every week. </p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:187398456,&quot;url&quot;:&quot;https://ileanamarcut.substack.com/p/product-manager-designer-skills-overlap&quot;,&quot;publication_id&quot;:5103992,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;UX + AI&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!5nJF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a082fbf-6344-4bdd-919d-be9670ab4d24_400x400.png&quot;,&quot;title&quot;:&quot;Product in the Age of AI: When Product Manager and Designer Skills Start to Overlap&quot;,&quot;truncated_body_text&quot;:&quot;Over the last two years, the rise of AI has reshaped the design world.&quot;,&quot;date&quot;:&quot;2026-02-12T11:10:52.182Z&quot;,&quot;like_count&quot;:66,&quot;comment_count&quot;:28,&quot;bylines&quot;:[{&quot;id&quot;:48566145,&quot;name&quot;:&quot;Ileana&quot;,&quot;handle&quot;:&quot;ileanamarcut&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/675d4668-f540-4240-bd26-d0c0600e02a7_1200x1200.jpeg&quot;,&quot;bio&quot;:&quot;Product Strategist, UX Designer, Founder at Creative Glue Lab. Clarity and insights on how to build and design with and for AI.&quot;,&quot;profile_set_up_at&quot;:&quot;2025-05-22T16:56:55.125Z&quot;,&quot;reader_installed_at&quot;:&quot;2025-05-29T17:42:10.226Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:5206541,&quot;user_id&quot;:48566145,&quot;publication_id&quot;:5103992,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:5103992,&quot;name&quot;:&quot;UX + AI&quot;,&quot;subdomain&quot;:&quot;ileanamarcut&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Build better experiences in a world shaped by AI.\nPractical insights at the intersection of UX, AI, and Product Strategy.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a082fbf-6344-4bdd-919d-be9670ab4d24_400x400.png&quot;,&quot;author_id&quot;:48566145,&quot;primary_user_id&quot;:48566145,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2025-05-23T09:59:50.455Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Ileana Marcut&quot;,&quot;founding_plan_name&quot;:&quot;Build Better&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;magaziney&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:1,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:1,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[4097137,5380707,1252952],&quot;subscriber&quot;:null}},{&quot;id&quot;:27968736,&quot;name&quot;:&quot;Karo (Product with Attitude)&quot;,&quot;handle&quot;:&quot;karozieminski&quot;,&quot;previous_name&quot;:&quot;Karo&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!aG8-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F599e664e-d6b8-4249-814a-4feadc68d706_1096x1096.png&quot;,&quot;bio&quot;:&quot;AI Product Manager turning everyone into AI-native builders. I help you design &amp; build with AI, not just use it. I build tools to grow your newsletter and showcase your work. Join a 14K+ community growing critical AI literacy by immersion.&quot;,&quot;profile_set_up_at&quot;:&quot;2022-09-06T13:48:06.095Z&quot;,&quot;reader_installed_at&quot;:&quot;2025-02-12T01:33:13.001Z&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:100,&quot;status&quot;:{&quot;bestsellerTier&quot;:100,&quot;subscriberTier&quot;:10,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;bestseller&quot;,&quot;tier&quot;:100},&quot;paidPublicationIds&quot;:[1105980,3266189,5380707,378002,5569874,4613350,2833541,2817779,1252952,3138516,4937949,6925112,5500944,4089894],&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:4097137,&quot;primaryPublicationName&quot;:&quot;Product with Attitude&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://karozieminski.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://karozieminski.substack.com/subscribe?&quot;},{&quot;id&quot;:31598723,&quot;name&quot;:&quot;Elena | AI Product Leader&quot;,&quot;handle&quot;:&quot;elenacalvillo&quot;,&quot;previous_name&quot;:&quot;Elena Calvillo at Product&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!RnEf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad6b36c8-e5a6-4820-b875-e7165528aae9_3000x3000.jpeg&quot;,&quot;bio&quot;:&quot;Teaching PMs to lead through technical clarity. I bridge strategy and architecture to kill ambiguity and make decisions stick. I build the products I once wrote about so you can stop asking permission and lead through evidence. Trusted by Reforge.&quot;,&quot;profile_set_up_at&quot;:&quot;2022-08-10T15:37:29.282Z&quot;,&quot;reader_installed_at&quot;:&quot;2022-08-15T19:00:25.382Z&quot;,&quot;twitter_screen_name&quot;:&quot;melenacalvillo&quot;,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:10,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:{&quot;type&quot;:&quot;subscriber&quot;,&quot;tier&quot;:10,&quot;accent_colors&quot;:null},&quot;paidPublicationIds&quot;:[10845,5569874,4097137,443311,3266189,4443372,4640380,5032182,5495909,2252793,1077462,3144118,2533420,1553477,1272495,2586083,1524130,1050136,2960395,2569,6925112,4806510,5500944,2727865,6335167],&quot;subscriber&quot;:null},&quot;primaryPublicationId&quot;:1252952,&quot;primaryPublicationName&quot;:&quot;Prompt-Led Product | Leadership Through Technical Clarity&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://promptledproduct.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://promptledproduct.substack.com/subscribe?&quot;},{&quot;id&quot;:351329584,&quot;name&quot;:&quot;Just J&quot;,&quot;handle&quot;:&quot;theaitrain&quot;,&quot;previous_name&quot;:&quot;Jesica&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!G5kx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1909bb44-fb91-47ca-9e3b-0bd379bfc4f8_576x576.png&quot;,&quot;bio&quot;:&quot;AI is here to stay so get on board! I combine a tech mindset with business and human transformation. I help teams &amp; companies shape strategies, improve products &amp; grow with AI.&quot;,&quot;profile_set_up_at&quot;:&quot;2025-06-05T14:40:43.642Z&quot;,&quot;reader_installed_at&quot;:null,&quot;is_guest&quot;:true,&quot;bestseller_tier&quot;:null,&quot;status&quot;:null,&quot;primaryPublicationId&quot;:6964655,&quot;primaryPublicationName&quot;:&quot;The AI train&quot;,&quot;primaryPublicationUrl&quot;:&quot;https://theaitrain.substack.com&quot;,&quot;primaryPublicationSubscribeUrl&quot;:&quot;https://theaitrain.substack.com/subscribe?&quot;}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://ileanamarcut.substack.com/p/product-manager-designer-skills-overlap?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!5nJF!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a082fbf-6344-4bdd-919d-be9670ab4d24_400x400.png" loading="lazy"><span class="embedded-post-publication-name">UX + AI</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Product in the Age of AI: When Product Manager and Designer Skills Start to Overlap</div></div><div class="embedded-post-body">Over the last two years, the rise of AI has reshaped the design world&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">9 months ago &#183; 66 likes &#183; 28 comments &#183; Ileana, Karo (Product with Attitude), Elena | AI Product Leader, and Just J</div></a></div><p><strong>&#128279; <a href="https://ileanamarcut.substack.com/">Link </a></strong></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[What Design Systems Can Learn From Vector Databases]]></title><description><![CDATA[Agentic Design Systems, part 1]]></description><link>https://learn.thedesignsystem.guide/p/what-design-systems-can-learn-from</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/what-design-systems-can-learn-from</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sat, 14 Mar 2026 14:05:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hrBh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><p><em>I am <strong>not</strong> affiliated with any of the suggested tools</em> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hrBh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hrBh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hrBh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1367981,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/190848778?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.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_!hrBh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!hrBh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f804-a680-44fe-bccb-fc0ab193e24c_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I know what you&#8217;re thinking.</p><p>&#8220;Vector databases? That&#8217;s for AI engineers and data scientists. What does that have to do with my design system?&#8221;</p><p>Here&#8217;s the thing: Vector databases solve a problem that design systems desperately need to solve, too.</p><p>They organize information by <strong>meaning</strong>, not just by structure.</p><p>And that changes everything.</p><p></p><h3>The Problem With How We Organize Design Systems Today</h3><p>Right now, your design system is probably organized like a SQL database.</p><p>You have rigid hierarchies:</p><ul><li><p>Components &#8594; Buttons &#8594; Primary &#8594; Hover State</p></li><li><p>Tokens &#8594; Color &#8594; Background &#8594; Primary</p></li></ul><p>It&#8217;s clean. It&#8217;s logical. It works.</p><p>But here&#8217;s what it doesn&#8217;t do: It doesn&#8217;t help you find things based on <strong>what they mean</strong> or <strong>why you&#8217;d use them</strong>.</p><p>When a designer asks, &#8220;What should I use for a destructive action?&#8221; they have to translate that intent into your taxonomy. Is that a &#8220;danger button&#8221;? A &#8220;negative action&#8221;? A &#8220;warning state&#8221;?</p><p>You didn&#8217;t have to memorize the exact folder structure in your brain. You just had to know the right keywords.</p><p>But what if your design system could understand <em>intent</em>?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m9ZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m9ZA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 424w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 848w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 1272w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!m9ZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png" width="1408" height="634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:634,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:575386,&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://learn.thedesignsystem.guide/i/190848778?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.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_!m9ZA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 424w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 848w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 1272w, https://substackcdn.com/image/fetch/$s_!m9ZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc5af52c-32e7-4a4a-8811-0aebbc2733c5_1408x634.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>How Vector Databases Actually Work</h3><p>Let me show you what I mean.</p><p>Vector databases don&#8217;t store data in rows and columns. They store <strong>meaning</strong> as high-dimensional numerical coordinates.</p><p>Here&#8217;s a simple example:</p><p>When you search for &#8220;king&#8221; in a vector database, it doesn&#8217;t just find exact matches. It finds concepts that are <em>semantically similar</em>:</p><ul><li><p>&#8220;queen&#8221; (same domain, different gender)</p></li><li><p>&#8220;monarch&#8221; (same meaning, different word)</p></li><li><p>&#8220;ruler&#8221; (related concept)</p></li></ul><p>The database understands that these concepts cluster together in meaning-space.</p><p>Now imagine applying that to your design system.</p><h3>What Changes for Humans</h3><h4>You Can Search by Intent, Not Just by Name</h4><p>Instead of browsing through component categories, you could ask:</p><blockquote><p>&#8220;Show me all patterns that convey urgency&#8221;</p></blockquote><p>And your design system would return:</p><ul><li><p>Error messages</p></li><li><p>Warning banners</p></li><li><p>Destructive action buttons</p></li><li><p>Toast notifications with alert icons</p></li><li><p>Red status indicators</p></li></ul><p>These components live in completely different parts of your taxonomy. But they share <strong>semantic meaning</strong>.</p><p>That&#8217;s the power of meaning-based organization.</p><p></p><h4>You Can Finally Solve the &#8220;New Component vs. Variant&#8221; Debate</h4><p>I&#8217;ve sat through countless design system meetings where teams debate:</p><blockquote><p>&#8220;Do we need a new component, or is this just a variant of what we have?&#8221;</p></blockquote><p>I&#8217;ve seen this firsthand. When you&#8217;re looking at a system with 50, 80, even close to 100 components, the overlaps become invisible. Manual audits catch some of them. But naming differences, context differences, and organic growth across teams create duplicates that no spreadsheet review will surface.</p><p>Vector logic could actually quantify similarity between components.</p><p>Compare two components based on:</p><ul><li><p>Visual embeddings (how they look in Figma)</p></li><li><p>Code structure (how they&#8217;re built)</p></li><li><p>Token usage (what design decisions they share)</p></li><li><p>Usage context (where they appear in products)</p></li></ul><p></p><p>If two components score high similarity across these dimensions, you probably don&#8217;t need both.</p><p>You might be wondering, &#8220;How accurate is this really?&#8221;</p><p>That&#8217;s fair. But here&#8217;s what I&#8217;ve learned: You don&#8217;t need perfect similarity scores. You need <strong>better visibility into what you already have</strong>.</p><p>Even a rough similarity map helps you spot duplicates that manual audits miss.</p><p></p><h3>What Changes for Agents</h3><h4>AI Tools Actually Know What to Use</h4><p></p><p><strong>Here&#8217;s where it gets interesting for agentic design.</strong></p><p>Right now, when an AI tool generates a UI, it relies on your component names and descriptions. It&#8217;s essentially doing keyword matching.</p><p>But with vector-based context retrieval, the AI could understand:</p><blockquote><p>&#8220;I&#8217;m building a form validation error. What components, patterns, tokens, and accessibility guidelines are semantically related to this task?&#8221;</p></blockquote><p>The system retrieves:</p><ul><li><p>Similar error patterns from your existing designs</p></li><li><p>The correct tokens (not just &#8220;red&#8221; but &#8220;color.feedback.error&#8221;)</p></li><li><p>Accessibility requirements for error announcements</p></li><li><p>Validation timing patterns</p></li><li><p>Microcopy guidelines for error messages</p></li></ul><p>All pulled together by <strong>meaning</strong>, not by manual tagging.</p><p></p><h4>Design Tokens Could Become Behavioral</h4><p>Traditional tokens store <strong>values</strong>: <code>color.blue.500</code> = <code>#3B82F6</code></p><p>Vector-inspired tokens could store <strong>behavioral meaning</strong>:</p><ul><li><p>How assertive (0.8 on a scale)</p></li><li><p>How calm (0.2)</p></li><li><p>How noticeable (0.9)</p></li></ul><p>Now imagine an adaptive interface that reads the user&#8217;s context and adjusts its tone.</p><p>Picture a checkout flow. The payment fails. Instead of the UI just swapping in a red banner, the entire interface shifts. Visual assertiveness dials down. Calmness increases. The system isn&#8217;t just showing an error state. It&#8217;s modulating the experience to match the emotional weight of the moment.</p><p>A celebration moment? It cranks up energy and noticeability.</p><p>The same components, but <strong>contextually tuned</strong> based on meaning vectors, not just static values.</p><p></p><h4>Components Gain Semantic Elasticity</h4><p>In agentic systems, context determines behavior.</p><p>Take a toast notification. It can:</p><ul><li><p>Confirm a successful action</p></li><li><p>Warn about a risky operation</p></li><li><p>Inform about system status</p></li><li><p>Celebrate an achievement</p></li></ul><p>Right now, you&#8217;d handle these with separate variants or different components entirely.</p><p>But with vectorized meaning, a single component could <strong>adapt</strong> based on detected intent.</p><p>The system reads the context (&#8221;this is a celebration&#8221;) and adjusts:</p><ul><li><p>Color intensity</p></li><li><p>Animation style</p></li><li><p>Icon selection</p></li><li><p>Duration on screen</p></li></ul><p>All semantically informed, not hardcoded.</p><p>Compare that to manually coding every possible variant upfront. The difference is massive.</p><p></p><h4>The Reality Check</h4><p>Let me be honest: Most design systems aren&#8217;t ready for this yet.</p><p>This isn&#8217;t because the technology doesn&#8217;t exist. Vector databases are mature. Embedding models are accessible.</p><p>The challenge is conceptual.</p><p>We&#8217;ve built design systems around <strong>structure</strong>: hierarchies, taxonomies, strict naming conventions.</p><p>Shifting to <strong>meaning-based organization</strong> requires rethinking:</p><ul><li><p>How we document components</p></li><li><p>How we describe patterns</p></li><li><p>How we train our teams</p></li><li><p>How AI tools interact with our systems</p></li></ul><p>It&#8217;s a fundamental shift from &#8220;what is this thing called?&#8221; to &#8220;what does this thing mean?&#8221;</p><p></p><h3>What This Actually Looks Like</h3><p>You don&#8217;t have to rebuild your entire design system around vectors tomorrow.</p><p>But you can start thinking differently today.</p><p>Here&#8217;s what that might look like:</p><p><strong>Start with documentation:</strong></p><ul><li><p>Add semantic descriptions to components: &#8220;This pattern expresses urgency and requires immediate attention.&#8221;</p></li><li><p>Tag components with intent, not just categories: &#8220;confirmation,&#8221; &#8220;prevention,&#8221; &#8220;celebration.&#8221;</p></li><li><p>Describe usage contexts: &#8220;Use when the user needs reassurance that their action succeeded.&#8221;</p></li></ul><p><strong>Experiment with embeddings:</strong></p><ul><li><p>Generate vector embeddings for your component descriptions</p></li><li><p>Build a simple similarity search</p></li><li><p>See what clusters emerge naturally</p></li></ul><p><strong>Augment, don&#8217;t replace:</strong></p><ul><li><p>Keep your existing taxonomy</p></li><li><p>Layer semantic search on top</p></li><li><p>Let both approaches coexist</p></li></ul><p>The next generation of design systems will likely blend:</p><ul><li><p><strong>Token databases</strong> (structured facts)</p></li><li><p><strong>Vector databases</strong> (semantic meaning)</p></li><li><p><strong>Context engines</strong> (runtime reasoning)</p></li></ul><p></p><p><strong>&#10145;&#65039; That&#8217;s how you get agentic design systems. Systems that understand </strong><em><strong>why</strong></em><strong> a component exists, not just </strong><em><strong>what</strong></em><strong> it&#8217;s called.</strong></p><p></p><h3>Try This</h3><p>If you&#8217;re ready to experiment, here&#8217;s where to start:</p><ol><li><p>Pick 10-20 components from your system</p></li><li><p>Add a semantic description for each: What&#8217;s its purpose? When would you use it? What feeling does it convey?</p></li><li><p>Use an embedding model (OpenAI&#8217;s text-embedding-3-small works well) to generate vectors</p></li><li><p>Run similarity comparisons between them</p></li><li><p>Look at what clusters together</p></li></ol><p></p><p>You might discover patterns you didn&#8217;t know existed.</p><p>You might find duplicates hiding under different names.</p><p>You might see how your system could be organized by meaning instead of taxonomy.</p><p>And that&#8217;s when design systems start to get really interesting. &#128579;</p><p></p><p><strong>Next week, I will share more about Agentic Design Systems, my setup, and MCP. &#10024; </strong></p><p></p><p>Stay tuned,<br>Romina</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Building Effective AI Coding Agents for the Terminal: Scaffolding, Harness, Context Engineering, and Lessons Learned</strong></p><p>AI agents suffer from the same problem as large design systems:</p><p>Context collapse. A new 55-page paper on terminal coding agents explains why.&#128071;</p><p>AI agents in long sessions forget their instructions, bloat their context, and start making bad decisions.</p><p><strong>&#128279; <a href="https://arxiv.org/abs/2603.05344">Link</a> </strong></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Should you build an agent for your design system]]></title><description><![CDATA[When and why to build one]]></description><link>https://learn.thedesignsystem.guide/p/should-you-build-an-agent-for-your</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/should-you-build-an-agent-for-your</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Sat, 28 Feb 2026 08:55:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y3Eh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><p><em>I am <strong>not</strong> affiliated with any of the suggested tools</em> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y3Eh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:966148,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/189349675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.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_!Y3Eh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!Y3Eh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0975b28-6edb-4e62-b15a-0053fdd9e30b_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everyone wants to add AI agents to everything right now. Your design system is no exception.</p><p>Someone on your team has already suggested it. &#8220;What if we built an agent that validates token usage?&#8221; </p><p>Let me give you a framework to figure out when an agent actually makes sense, when a simple workflow does the job, and when you should just write a shell script and move on with your life.</p><div><hr></div><h2>First, what is an agent?</h2><p>An agent is an LLM that<strong> can use tools and take actions. </strong>Not just answer questions. Act.</p><p>That&#8217;s the key difference from a regular AI chat. When you ask ChatGPT or Claude a question, it generates a response and stops. It lives entirely inside the conversation. It can&#8217;t open your files, check your codebase, run a command, or push a commit. It can only talk.</p><p>An agent can do all of those things. It has access to tools such as your file system, terminal, APIs, design token files, and Figma. When you give it a task, it doesn&#8217;t just tell you what to do. It reads your code, finds the problem, writes a fix, runs the tests, and tells you what happened. Then it decides what to do next based on the result. If the tests fail, it reads the error, adjusts, and tries again.</p><p>Here&#8217;s what that looks like in practice. You tell an agent: &#8220;Check if our Button component matches the Figma design.&#8221; The agent:</p><ol><li><p>Connects to <strong>Figma&#8217;s API</strong> and pulls the design specs for the Button component.</p></li><li><p>Reads your <strong>component source code</strong> to understand the current implementation.</p></li><li><p>Launches a <strong>browser</strong> using Playwright, navigates to your Storybook, and takes a screenshot of the rendered Button.</p></li><li><p>Compares the screenshot against the Figma design and flags differences: wrong padding, missing hover state, border-radius off by 2px.</p></li><li><p>Writes a <strong>summary</strong> with specific suggestions and the exact lines of code to change.</p></li></ol><p>No single tool does all of that. The agent stitched five tools together on its own and decided the order. That&#8217;s the difference. A chat would have told you <em>how</em> to do the comparison. The agent <em>did</em> it.</p><p>So, you tell it what you need, and it figures out the steps. Sometimes it asks for clarification. Sometimes it goes down the wrong path and corrects itself. Sometimes it nails it on the first try.</p><p>The other key difference is from a workflow: an agent chooses its own path. A workflow follows steps you defined in advance. When the task is predictable, a workflow wins. When the task requires adapting to what it finds along the way, that&#8217;s where agents earn their keep.</p><h3>How do you actually make an agent?</h3><p>You don&#8217;t need to write code to use an agent. Tools like <a href="https://docs.anthropic.com/en/docs/claude-code">Claude Code</a>, <a href="https://cursor.com">Cursor</a>, and <a href="https://github.com/features/copilot">GitHub Copilot</a> are agents you can use right now. Open a terminal, point Claude Code at your codebase, and ask it to do something. That&#8217;s it. You&#8217;re using an agent.</p><p>But if you want to build your own, the format is simpler than you&#8217;d expect. At its core, an agent is just three things:</p><ol><li><p><strong>Instructions.</strong> A markdown file or system prompt that tells the agent who it is, what it knows, and how it should behave. Think of it as the job description for your intern.</p></li><li><p><strong>Tools.</strong> What the agent can actually do. Read files, search code, call APIs, run commands, edit files. You decide what to give it access to.</p></li><li><p><strong>A loop.</strong> The agent reads its instructions, picks a tool, uses it, looks at the result, and decides what to do next. It keeps going until the task is done or it gets stuck.</p></li></ol><p></p><p>That&#8217;s the whole architecture. Instructions, tools, loop.</p><p></p><p>For design systems specifically, the most common entry points are:</p><ul><li><p><strong>Claude Code with a CLAUDE.md file.</strong> You write a markdown file describing your design system&#8217;s conventions, token structure, component patterns, and coding standards. The agent reads it before every task. This is the lowest-effort way to get a design-system-aware agent.</p></li><li><p><strong>Custom MCP servers.</strong> The <a href="https://modelcontextprotocol.io/">Model Context Protocol</a> lets you expose your design tokens, component docs, or Figma data as tools an agent can query. Your agent can now look up your actual token values, not guess at them.</p></li><li><p><strong>SDKs for full control.</strong> Anthropic&#8217;s <a href="https://github.com/anthropics/anthropic-sdk-python">Agent SDK</a>, OpenAI&#8217;s <a href="https://platform.openai.com/docs/assistants/overview">Assistants API</a>, and frameworks like <a href="https://www.langchain.com/">LangChain</a> let you build agents programmatically. More power, more complexity. Only go here if the simpler options aren&#8217;t enough.</p></li></ul><p>You don&#8217;t need to start with SDKs. Start simple with Claude Code and a well-written CLAUDE.md file. Start there.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k07n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k07n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 424w, https://substackcdn.com/image/fetch/$s_!k07n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 848w, https://substackcdn.com/image/fetch/$s_!k07n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 1272w, https://substackcdn.com/image/fetch/$s_!k07n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!k07n!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png" width="1200" height="654.3956043956044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:615298,&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://learn.thedesignsystem.guide/i/189349675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k07n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 424w, https://substackcdn.com/image/fetch/$s_!k07n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 848w, https://substackcdn.com/image/fetch/$s_!k07n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 1272w, https://substackcdn.com/image/fetch/$s_!k07n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90de4e0e-a05d-4979-bb5d-c1f64cdeb949_3022x1648.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>Agents have opinions</h3><p>And agents have opinions. A <a href="https://amplifying.ai/research/claude-code-picks">recent study of 2,430 Claude Code interactions</a> found that in 12 out of 20 task categories, the agent chose to build a custom solution rather than recommend an existing tool. Asked to add feature flags? It builds a config system from scratch instead of reaching for LaunchDarkly. Asked about authentication? It implements JWT + bcrypt rather than suggesting Auth0.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Jkg5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jkg5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jkg5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png" width="1456" height="1733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:583217,&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://learn.thedesignsystem.guide/i/189349675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.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_!Jkg5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!Jkg5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce1f5504-9c57-463b-a833-09f64a64d0c0_2268x2700.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This matters for design systems. Point an agent at your token validation problem and it will happily build you a custom solution. That might be exactly what you need. Or you might have been better off with an ESLint plugin that already exists. The agent won&#8217;t make that call for you. You have to.</p><div><hr></div><h2>The hype is real, but so is the waste</h2><p><strong>Peter Steinberger, </strong>creator of OpenClaw (the fastest-growing GitHub project ever), just joined OpenAI. His mission: &#8220;<em>build an agent that even my mum can use.</em>&#8221; Gartner published a report on February 13 about &#8220;context graphs&#8221; as essential infrastructure for agentic systems. Enterprise is all-in.</p><p>But Anthropic, the company behind Claude, says something much more grounded in their &#8220;Building Effective Agents&#8221; guide: <strong>find the simplest solution possible, and only increase complexity when needed.</strong></p><p>That&#8217;s worth repeating. The company selling you AI agents is telling you not to build agents unless you have to.</p><p>Why? Because <strong>agents trade latency and cost for better task performance.</strong> They <strong>consume roughly 4x more </strong>tokens than simple chat interactions. Multi-agent systems? Try 15x. And when something goes wrong, you don&#8217;t get a nice red error message. You get a token bill that looks like someone put an API call inside an infinite loop.</p><p>For most design system work, a workflow or a well-written script will outperform an agent. Less cost, faster execution, more predictable results.</p><p>By the way, these are<strong> typical token drivers:</strong></p><ul><li><p>System + tool schemas &#8594; High upfront cost</p></li><li><p>Planning / reasoning loops  &#8594; Medium&#8211;high</p></li><li><p>Tool outputs re-ingested &#8594; High</p></li><li><p>Memory retrieval &#8594; Medium</p></li><li><p>Self-reflection / retries  &#8594; High</p><p></p></li></ul><p>&#10024; A simple chat = 1 request &#8594; 1 response<br>&#10024; An agent = plan &#8594; act &#8594; observe &#8594; reflect &#8594; retry</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://skillsmp.com/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IkBY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 424w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 848w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 1272w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!IkBY!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png" width="1200" height="652.7472527472528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26af4037-2eab-4246-b042-935f97180efb_3018x1642.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:792,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:624390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://skillsmp.com/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/189349675?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IkBY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 424w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 848w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 1272w, https://substackcdn.com/image/fetch/$s_!IkBY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26af4037-2eab-4246-b042-935f97180efb_3018x1642.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h6>Agent Skills are modular capabilities that extend AI coding assistants. Each skill consists of a SKILL.md file with instructions, plus optional scripts and templates. In December 2025, Anthropic released the Agent Skills specification as an open standard, and OpenAI adopted the same format for Codex CLI and ChatGPT. Skills are model-invoked&#8212;the AI automatically decides when to use them based on context.</h6><p>&#128279; https://skillsmp.com/</p><div><hr></div><h2>A five-question checklist</h2><p></p><p><strong>1. Is the task complex enough?</strong></p><p>If the task follows the same steps every time, you want a workflow. If it requires judgment, adaptation, and handling unexpected situations, you might want an agent.</p><p><em>Token linting</em> is a workflow. You know the rules. Check if raw hex values are used instead of tokens. Flag primitive tokens used directly in components. Run it on every PR. Done. No agent needed.</p><p>But reviewing a new component design against your entire design system&#8217;s guidelines, considering context, brand, accessibility, and platform constraints? That requires judgment. That&#8217;s agent territory.</p><p><strong>2. Is the task valuable enough?</strong></p><p>If each task run saves less than $0.10 of human time, use a workflow. If it saves more than $1.00 per run, an agent starts making economic sense.</p><p>Checking a file for unused imports? Pennies. Not worth an agent.</p><p>Migrating 200 components from one token schema to another, where each component needs contextual decisions about which new token maps to the old one? That&#8217;s hours of human work per component. An agent pays for itself on the first run.</p><p><strong>3. Are all parts of the task doable?</strong></p><p>This one trips people up. If your agent needs to access Figma&#8217;s internal rendering engine, read a designer&#8217;s mind about intent, or make pixel-perfect visual comparisons without any ground truth, you don&#8217;t have an agent problem. You have a scope problem. Reduce it until every step is technically feasible.</p><p><strong>4. What is the cost of error?</strong></p><p>High cost of error means read-only access and human-in-the-loop. Low cost of error means you can let agents run autonomously.</p><p>An agent that suggests documentation updates? Low risk. A human reviews before publishing. Let it run.</p><p>An agent that automatically pushes token changes to production across 12 codebases? Extremely high risk. One wrong semantic mapping, and your entire product suite has the wrong error colors. Keep this read-only, with human approval gates at every step.</p><p><strong>5. Can you trust the output?</strong></p><p>There&#8217;s a design systems angle to agents that almost nobody is discussing yet. Design systems are trust infrastructure. </p><p>Teams adopt your tokens, components, and patterns because they produce consistent, predictable results every time. <em>Agents introduce variability. </em>Run the same prompt twice, and you might get two different outputs. That&#8217;s fine for a blog draft. It&#8217;s a problem when the agent is deciding which semantic token maps  <code>color.background.danger</code> across your component library. </p><p>So before you deploy an agent into any design system workflow, ask yourself: is the output deterministic enough that teams can rely on it? Can you audit what the agent did and why? Can someone else reproduce the result? And when the agent makes a choice, can it explain its reasoning in terms your team actually understands? If the answer to any of those is no, you don&#8217;t have an agent problem. You have a governance gap. Close it before you ship.</p><p></p><p><strong>Three core principles for agents from Anthropic:</strong></p><ol><li><p><strong>Simplicity</strong> in design</p></li><li><p><strong>Transparency</strong> &#8594; explicitly show planning steps</p></li><li><p><strong>Careful ACI (agent-computer interface)</strong> &#8594; invest heavily in tool documentation and testing</p></li></ol><div><hr></div><h2>Applying this to real design system work</h2><p>Let me walk through five common scenarios.</p><h3>Token validation &#8594; Workflow</h3><p>The rules are static. You know exactly what correct looks like. Check if raw hex values are used instead of tokens, flag primitives used directly in components. AST parsing and token matching are solved problems. Each individual check is cheap, and false positives are just noise.</p><p>Write a linter. Run it in CI. Done.</p><h3>Component documentation generation &#8594; Agent with human review</h3><p>This one gets interesting. Reading code, extracting props, understanding usage patterns, writing clear descriptions. There&#8217;s real judgment involved. And documentation is the #1 complaint about every design system, so the payoff is high.</p><p>But bad docs are annoying, not destructive. So scope it to generating drafts. The agent handles the tedious extraction and first pass. You handle the voice and accuracy check. A human approves before merging.</p><h3>Design review against guidelines &#8594; Scoped agent</h3><p>Context matters enormously here. A red button is fine in a destructive action confirmation, wrong in a success state. Manual design reviews are a bottleneck for every team, so the value is obvious.</p><p>The problem is feasibility. Visual comparison is hard. Semantic analysis of intent is harder. And bad feedback wastes designer time and erodes trust.</p><p>So reduce scope to what&#8217;s actually doable. Token usage, spacing consistency, accessibility requirements. Leave subjective judgment (layout quality, visual harmony) to humans. Be honest about what the agent can and cannot evaluate.</p><h3>Cross-codebase migration &#8594; Agent with strict guardrails</h3><p>This is where agents genuinely shine. Every component has unique context, dependencies, and edge cases. Migrations eat months of team time. It&#8217;s the single most valuable automation you could build.</p><p>But it&#8217;s also the most dangerous. One wrong semantic mapping and your entire product suite has the wrong error colors.</p><p>Run agents with read-only access first. Generate migration PRs for human review. Never auto-merge. Test each migration against visual regression snapshots before approving.</p><h3>Generating new components from Figma &#8594; Agent</h3><p>Translating design intent to production code involves many judgment calls. Hours saved per component. Tools like Claude Code already do this well when given proper context (your existing components, tokens, and conventions).</p><p>The agent generates a first pass. A developer refines it. Bad code gets caught in review. This cuts component creation time from days to hours.</p><div><hr></div><h2>The &#8220;90% workflow&#8221; test</h2><p>Anthropic&#8217;s framework includes a brutally practical insight. Track your agent runs for a month. If the agent does the same tasks in the same order for 90% or more of cases, you&#8217;ve discovered a workflow hiding inside an agent.</p><p>Convert it. You&#8217;ll get faster execution, lower costs, and more predictable results.</p><p>Most design system automation falls into this category. Token syncing, changelog generation, accessibility checks, component scaffolding. These are all repetitive, well-defined tasks. Build them as workflows. Save agents for the genuinely complex work.</p><div><hr></div><h2>Start here</h2><p>If you&#8217;re considering agents for your design system, start with this:</p><ol><li><p><strong>Audit your manual tasks.</strong> List everything your team does repeatedly and time needed for each one.</p></li><li><p><strong>Score each task against the four questions.</strong> Be honest about complexity and error cost.</p></li><li><p><strong>Build workflows first.</strong> Linters, CI checks, and scripts handle 80% of design system automation needs.</p></li><li><p><strong>Pilot one agent use case.</strong> Pick the highest-value, lowest-risk task from your audit. Documentation generation is usually the safest starting point.</p></li><li><p><strong>Measure ruthlessly.</strong> Track time saved, error rates, and token costs. If the agent isn&#8217;t clearly outperforming a workflow, simplify.</p></li></ol><p>The goal isn&#8217;t to have the most sophisticated AI setup. The goal is to free your team from repetitive work so they can focus on what actually matters: making decisions about your system&#8217;s direction, quality, and adoption.</p><p>Don&#8217;t build an agent because you can. Build one because nothing simpler will do the job.</p><div><hr></div><h2>The real way to learn this</h2><p>Pick a small problem you actually have. A report you have to manually compile. A workflow that&#8217;s tedious. A prototype you wish existed.</p><p>Spend 30 minutes writing context before you prompt. Not the prompt itself. The context. What the problem is, who it&#8217;s for, what good looks like, what constraints exist. </p><p>Point an agent at it and watch what happens. Don&#8217;t expect perfection. Expect a starting point. React to it. Guide it. Iterate.</p><p>Do this ten times. With different problems. Different levels of complexity. You&#8217;ll develop intuition for what works, what context matters, how to evaluate output. </p><p>The hard part is still the same thing&#8594; understanding the problem, user empathy, judgment, taste.</p><p>Those don&#8217;t get automated. They get more valuable. &#128588;</p><p></p><p>Start building,<br>Romina</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Component Odyssey (Course)</strong></p><p>Learn to build and publish your own component library that works in any web framework.</p><p>Save yourself and your company weeks of development time. Build components your users will love. Become a future-proof web developer.</p><p><strong>&#128279; <a href="https://component-odyssey.com/">Link</a> </strong></p><p><br><strong>Paper (just launched)</strong></p><p>The connected canvas for teams shipping with agents.</p><p>&#128279;<a href="https://www.linkedin.com/posts/activity-7426596617509789696-lroo?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAIm0UIB6YXIAMl4tTZJpr6OKeGfXLHdRoY"> </a><strong><a href="https://paper.design/">Link</a></strong></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[20 AI workflows that save design system teams 10+ hours a week]]></title><description><![CDATA[Get some inspiration and start building]]></description><link>https://learn.thedesignsystem.guide/p/20-ways-to-use-ai-this-year-for-design</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/20-ways-to-use-ai-this-year-for-design</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 13 Feb 2026 13:15:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!y95Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><p><em>I am <strong>not</strong> affiliated with any of the suggested tools</em> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y95Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y95Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y95Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00561647-43da-49ae-80d4-220f53e6438c_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:671861,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/187837605?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.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_!y95Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!y95Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00561647-43da-49ae-80d4-220f53e6438c_1456x970.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You have more demand than capacity.</p><p>You are expected to ship components, keep tokens in sync, help product teams move faster, reduce inconsistency, and now also &#8220;use AI.&#8221;</p><p>Here are 20 ways design system teams can use AI this year. Real tools, workflows, and setups that reduce toil and make your system feel more like a product.</p><p>I have written about most of them in depth. I will link to those articles so you can go deeper into whatever interests you.</p><p>I grouped the 20 ideas into five areas:</p><ul><li><p><strong>Components and implementation</strong> </p></li><li><p><strong>Documentation and enablement</strong> </p></li><li><p><strong>Strategy and prioritization</strong> </p></li><li><p><strong>Tokens and consistency</strong> </p></li><li><p><strong>Adoption, metrics, and ROI</strong> </p></li></ul><p>Let&#8217;s go &#128071;</p><div><hr></div><h2>Components and implementation</h2><h3>1. Generate components from your Figma designs with AI</h3><p>Most AI-generated components look fine in isolation but fall apart the moment you put them next to your real system. They use the wrong tokens, invent their own spacing, and ignore your composition patterns. Meanwhile, designers hand off Figma frames, and engineers still rebuild from scratch. The AI output is a curiosity, not a shortcut.</p><p>The fix is to connect AI directly to your system. Figma Make generates code from your design frames, but instead of producing generic markup, it references your existing component library. Pair it with <strong>MCP connectors </strong>(Notion, GitHub) so Figma Make can read your component docs and token files. Then add an <code>.ai/</code> directory in your repo that contains your component generation rules: which tokens to use, which base components to compose,and  accessibility requirements.</p><p><strong>The setup:</strong></p><ol><li><p><strong>Figma Make</strong> generates a first pass from your design frames. Not generic code, but code that references your existing components</p></li><li><p><strong>MCP connectors</strong> (Notion, GitHub) give Figma Make access to your component docs and token files</p></li><li><p><strong>An </strong><code>.ai/</code><strong> directory</strong> in your repo contains your component generation rules: which tokens to use, which base components to compose, accessibility requirements</p></li></ol><p>This same approach works outside Figma Make. Both <strong>Cursor</strong> and <strong>Claude Code</strong> can connect to the <strong>Figma MCP server</strong>, read your design frames directly, and generate components using your tokens and component library. The <code>.ai/</code> directory works the same way regardless of which tool you use. Pick the one your team already runs.</p><p>The gap between &#8220;design done&#8221; and &#8220;component shipped&#8221; shrinks from days to hours. AI does the first draft; you do the review.</p><p>I covered the full workflow here:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f9b82091-5a46-4eb9-868a-a4264a8af1d4&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Figma Make Won't Work Until You Do This&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-19T08:54:38.121Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!5Nwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66ed80db-0efe-4510-914f-e403c57fdbdd_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/figma-make-wont-work-until-you-do&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:181702778,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:48,&quot;comment_count&quot;:4,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c67b80d5-4fce-4fb4-99e2-8ad5ddaf37d2&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Ultimate AI Component Generation Framework &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-03T10:09:26.324Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!a3HB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67bea4d7-9c61-4672-bc26-7ff74f3bc772_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/the-ultimate-ai-component-generation&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:175136945,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:66,&quot;comment_count&quot;:4,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;df10bf65-ba60-4720-b363-99f2b8cb5533&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Use AI to push Figma variants straight to Storybook (Step-by-step guide)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-06T08:51:37.317Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!nMHS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/push-your-figma-components-to-storybook&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186969619,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:49,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>2. Automate design system audits with Playwright</h3><p>Accessibility audits, visual regression tests, and token usage checks are the work nobody has time for, but everybody notices when they are skipped. Most teams run these manually once before a major release, identify a backlog of issues, and then do not address them again for months.</p><p><strong>Playwright&#8217;s MCP</strong> integration changes this. It gives you three AI agents that work together to keep your audits running continuously:</p><ul><li><p><strong>Planner</strong>: explores your Storybook or documentation site and creates test scenarios</p></li><li><p><strong>Generator</strong>: writes the actual test code by interacting with your components</p></li><li><p><strong>Healer</strong>: fixes broken tests automatically when components change</p></li></ul><p><strong>Five audits you can automate today:</strong></p><ol><li><p>Token consistency audit (scan rendered components for hardcoded values)</p></li><li><p>Component behavior testing (keyboard nav, focus management)</p></li><li><p>Accessibility checks (ARIA roles, contrast, screen reader labels)</p></li><li><p>Documentation accuracy (do the docs match what the component actually does?)</p></li><li><p>Visual regression (screenshot comparison across themes and viewports)</p></li></ol><p>Your team stops catching checkbox-level issues in reviews and focuses on the hard stuff (interaction patterns, naming, architecture) while Playwright handles the checklist.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8637d328-68f4-4b58-a4c7-ef66603df660&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Automate Design System Audits and Testing&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-24T05:41:26.837Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!3RG_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89a4e5fc-bd38-48d1-89f0-f956b9281f8e_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-to-automate-design-system-audits&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:176858532,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:28,&quot;comment_count&quot;:0,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>3. Build a custom Figma plugin for your design system</h3><p>Every design system has rules that Figma does not enforce. Designers use the wrong tokens, skip semantic layers, or apply status colors to the wrong contexts. You catch these in review. The same review comments, week after week.</p><p>A custom Figma plugin can automatically validate token usage. And with <strong><a href="https://www.plugma.dev/">plugma</a></strong>, building one is no longer a side project that takes a sprint. Plugma gives you a modern dev toolchain for Figma plugins (hot reload, TypeScript, bundling) so you can use AI to write most of the plugin logic while <strong>plugma </strong>handles the build.</p><p><strong>Example: a token intent validator</strong></p><p>Your plugin can scan selected frames and flag:</p><ul><li><p>Raw hex colors used instead of tokens</p></li><li><p>Primitive tokens (<code>blue.500</code>) used directly in components</p></li><li><p>Status colors (danger/success) used in the wrong context</p></li><li><p>Interactive tokens applied to static elements</p></li></ul><p>Designers get inline warnings with suggested fixes. You stop repeating the same review comments.</p><p><strong>The setup:</strong></p><pre><code><code>npx create-plugma@latest my-token-validator
cd my-token-validator
npm run dev  # hot reload in Figma</code></code></pre><p>Use AI to generate your validation rules from your token naming convention (see &#8220;Generate a token naming convention&#8221; below).</p><div><hr></div><h3>4. Write a migration guide for breaking changes</h3><p>You ship a breaking change. Three teams break. Nobody reads the changelog. Changelogs list what changed, not what to do about it. A migration guide is the artifact that actually gets used: who is affected, what to change, and where to watch out.</p><p>Feed AI the diff between the old and new API, plus a short explanation of why the change was made. It generates a structured guide in minutes that would otherwise take you an hour to write and another hour to format.</p><p><strong>Prompt:</strong></p><pre><code><code>Write a migration guide for this breaking change.
Inputs:
- old API: [paste]
- new API: [paste]
- why we changed it: [paste]

Output:
1) who is affected
2) before/after examples
3) a step-by-step migration checklist
4) common mistakes</code></code></pre><p>Save as <code>migration-guides/[component]-[version].md</code>. When teams ask &#8220;how do I update?&#8221;, send a link instead of typing a response.</p><div><hr></div><h2>Documentation and enablement</h2><h3>5. Automate your documentation pipeline</h3><p>Documentation that lags weeks behind code is worse than no documentation. It actively misleads people. Screenshots go stale. Props tables list options that were removed two releases ago. Teams stop trusting the docs and start reading source code instead, which defeats the entire purpose of having a design system.</p><p>The fix is not &#8220;write docs faster.&#8221; The fix is a pipeline that keeps docs in sync with your components continuously. Connect <strong>Figma MCP + Claude Code + Mintlify </strong>(or your docs framework of choice). Figma MCP reads your component designs and extracts props, variants, and states. Claude Code generates documentation markdown from your component source code combined with the Figma data. Mintlify publishes automatically on merge.</p><p><strong>The pipeline:</strong></p><ol><li><p><strong>Figma MCP</strong> reads your component designs and extracts props, variants, and states</p></li><li><p><strong>Claude Code</strong> generates documentation markdown from your component source code + Figma data</p></li><li><p><strong>Mintlify</strong> (or Storybook, or your docs site) publishes automatically on merge</p></li><li><p><strong>Cron job</strong> (optional) runs weekly to re-sync screenshots and catch drift</p><p></p></li></ol><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;bbc39bfc-5536-4bee-a3d3-d610c5712d08&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Automate Design System Documentation&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-17T08:58:02.536Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!9dDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe9c6aa2-4c25-47ea-8c50-3c5d2d786ca1_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-to-automate-design-system-documentation&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:176234757,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:103,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>Add Claude Code Skills to your design system workflow</h3><p>Everyone on your team prompts AI differently. One person writes a paragraph of context. Another pastes raw code and says, &#8220;Fix this.&#8221; The results are wildly inconsistent, and people end up writing the same instructions repeatedly, or worse, stop using AI because the output never matches the system.</p><p>Claude Code Skills solves this. <strong>Skills are reusable instruction sets </strong>that auto-load based on context. They are prompts that know when to activate and what files to read. You do not have to remember to use them. They just show up when relevant.</p><p><strong>The best Skills for design system work:</strong></p><p><strong>&#10024; token-migration-assistant</strong><br>Detects your token format and migrates between Style Dictionary, W3C DTCG, Figma Variables, CSS, and Tailwind.</p><p><strong>&#10024; component-audit</strong><br>Runs comprehensive audits: accessibility, theming, responsiveness, code quality.</p><p><strong>&#10024; documentation-standards</strong><br>Generates consistent component docs matching your format.</p><p><strong>&#10024; brand-guidelines</strong><br>Applies your brand&#8217;s colors, typography, spacing, and motion rules.</p><p><strong>&#10024; figma-variables-generator</strong><br>Generates Figma Variables JSON directly from your design tokens.</p><p>A prompt library is a document people forget exists. A Skill auto-loads when Claude Code detects it is relevant. That difference is everything.</p><p>I covered Skills in depth here &#128071;</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4cdd226a-7104-4cb2-be72-aa2771d0ebe9&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why your design system team need Claude Skills&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-31T08:28:29.183Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!hfid!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24758dfa-e759-4c93-9684-8925c6c393e3_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/why-your-design-system-team-need&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:177632613,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:54,&quot;comment_count&quot;:0,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>7. Make your own custom Skill </h3><p>The prebuilt Skills cover common workflows, but your design system has its own rules, naming conventions, and patterns that no generic skill can cover. The good news: a custom Skill is a Markdown file with YAML front matter. That is it. </p><p><strong>Example: a token naming validator Skill</strong></p><pre><code><code>---
name: token-naming-validator
description: Validates design token names against our naming convention
autoload: when working with design tokens or token files
---

# Token Naming Validator

When reviewing or generating design tokens, enforce these rules:

## Naming structure
- Format: `{category}.{property}.{variant}.{state}`
- Categories: color, spacing, typography, elevation, motion
- Use dot notation, not camelCase or kebab-case

## Rules
- Semantic tokens MUST reference primitives, never raw values
- No color names in semantic tokens (use "primary" not "blue")
- State variants: default, hover, active, disabled, focus
- Every token must have a description field

## On violation
- Flag the token name
- Suggest the correct name
- Explain the rule that was broken</code></code></pre><p>Save personal Skills to <code>~/.claude/skills/</code> or project Skills to <code>.claude/skills/</code> (version controlled, shared with the team). Now your entire team gets consistent AI behavior (same naming rules, same validation, same output format) without anyone memorizing the rules.</p><div><hr></div><h3>8. Create a design system onboarding FAQ from real questions</h3><p>Every new hire asks the same 20 questions. Where do I find the tokens? Which Button variant do I use for destructive actions? How do I submit a new component request? You answer these individually, every time, in Slack DMs that nobody else can see.</p><p>Take the last 50 questions that new team members actually asked. Answer them, feed them to AI and generate a <strong>structured FAQ.</strong> The next person who joins does not need you to onboard them. They have the FAQ.</p><p><strong>Prompt:</strong></p><pre><code><code>Turn these questions into an onboarding FAQ for our design system.
Requirements:
- group by theme
- answer in plain language
- link to the right doc sections (use placeholders if unknown)
- include "common mistakes"</code></code></pre><p>Save as <code>onboarding-faq.md</code> and link it from your main docs. Update it quarterly as new questions come in.</p><h2>Strategy and prioritization</h2><h3>9. Turn requests into a single backlog</h3><p>Design system requests come from everywhere: Slack threads, Jira tickets, meeting sidebars, and post-it notes from a workshop three weeks ago. You spend hours manually deduplicating, and you still miss things because half the requests were verbal.</p><p>Dump your last 30 days of requests into a single document. Feed it into the AI and ask it to deduplicate, group by theme, count frequencies, and identify the underlying job-to-be-done. You get a clean backlog in minutes, not a half-day of spreadsheet work.</p><p><strong>Prompt:</strong></p><pre><code><code>You are helping a design system lead consolidate requests.

Input: a list of requests (Slack snippets, Jira tickets, meeting notes).
Output:
1) A cleaned list of requests grouped by theme (duplicates merged)
2) For each theme: frequency, impacted teams, and the underlying job-to-be-done
3) A short "what we are NOT doing" list (scope control)

Format: markdown</code></code></pre><p>Save as <code>design-system-backlog.md</code>. Update it weekly. 2&#8211;3 hours saved per sprint, and you now have a source of truth that is not your memory.</p><div><hr></div><h3>10. Write a one-page strategy map</h3><p>Leadership asks, &#8220;What&#8217;s the plan?&#8221; and you have 47 Notion docs, but no clear answer. The detail is there. The clarity is not. What you need is a s<strong>ingle-page summary</strong>: everything you know about the current state, the vision, and the path forward, reduced to one page that anyone can read in two minutes.</p><p><strong>Prompt:</strong></p><pre><code><code>Create a one-page design system strategy map with:
- Context: what is broken today (3-5 bullets)
- Vision: where we want to be in 12 months
- Strategy: our 3 biggest bets
- Metrics: what we will measure monthly
- Stakeholders: who needs updates and how often

Make it plain English. No corporate jargon.</code></code></pre><p>If it does not fit on one page, you do not understand it well enough yet. </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c4121dd6-b80c-4f83-b461-32b79776b2b7&quot;,&quot;caption&quot;:&quot;A design system isn't just documentation and components. It's a strategic business asset. But it is like a band's repertoire. You need to learn the standards first, then improvise. 2025 is your chanc&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Your design system strategy on one page&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-03T13:09:29.387Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!bKdg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97bdcafd-65a4-48bb-984c-ef60e134682a_840x605.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/your-design-system-strategy-on-one&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:154068595,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:13,&quot;comment_count&quot;:2,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h3>11. Run a component ROI sanity check before you build</h3><p>Most component decisions follow the same pattern: someone with influence requests it, you build it, and six months later it is used in two places. Meanwhile, the component the three teams need is in the backlog because no one lobbied for it loudly enough.</p><p><strong>Before you build, run a quick sanity check. </strong>Map the request to screens, teams, and reuse potential. It takes five minutes and saves you from building the wrong thing first.</p><p><strong>Prompt:</strong></p><pre><code><code>Help me decide whether to build a new component.

Component request: [paste]
Context:
- Teams requesting it: [list]
- Known screens / flows: [list]
- Alternatives in system today: [list]

Output:
1) Reuse likelihood (high/medium/low) with reasoning
2) Risks (maintenance, variants, accessibility complexity)
3) MVP scope (minimum viable version)
4) What to validate before building</code></code></pre><p>Save the output in your decisions folder. When someone asks, &#8220;Why didn&#8217;t we build X?&#8221; you have a written record of the reasoning.</p><div><hr></div><h3>12. Use Claude Code for design system research</h3><p>Researching how other systems handle a problem (token structures, component APIs, theming approaches) usually eats an entire afternoon. You open ten tabs, compare three Storybook instances, skim four blog posts, and still end up with scattered notes.</p><p>Claude Code has built-in web search and file analysis. Point it at a competitor&#8217;s public repo, a Storybook instance, or a set of documentation pages, and it pulls everything together into one document. </p><p><strong>Example:</strong></p><pre><code><code># From your terminal, ask Claude Code to research
claude "Research how Shopify Polaris, Atlassian, and GitHub Primer
handle their color token structure. Compare naming conventions,
semantic layers, and how they handle dark mode. Output a comparison
table I can share with my team."</code></code></pre><p>You get a research summary your team can act on in the same week you asked the question, not a collection of bookmarks you will never revisit.</p><div><hr></div><h2>Tokens and consistency</h2><h3>13. Generate a token naming convention from your real usage</h3><p>Token naming inconsistencies are a burden on every engineer who touches your system. <code>color-primary</code> in one file, <code>primaryColor</code> in another, <code>brand.primary</code> in a third. Engineers guess. Designers copy what looks right. The inconsistency compounds silently until a rebrand or a multi-brand initiative forces you to deal with all of it at once.</p><p>Instead of designing a naming convention from scratch, give AI your current token set and ask it to propose a scheme that matches what you already do, then tighten the edges.</p><p><strong>Prompt:</strong></p><pre><code><code>Analyze our token set and propose a consistent naming convention.
Goals:
- predictable
- scalable to multiple brands
- clear semantic vs primitive separation

Output:
1) naming rules
2) 10 "before -&gt; after" renames
3) a short migration strategy</code></code></pre><p>The goal is predictability. A developer should be able to guess the token name without checking the documentation.</p><div><hr></div><h3>14. Connect Figma variables to your codebase with MCP</h3><p>Every time you paste token values into an AI prompt, they are already stale. Your Figma variables update. Your tokens JSON gets a new release. But the AI is working with whatever you copy-pasted last Tuesday.</p><p>A Model Context Protocol (MCP) server connects your design tokens directly to Claude. The Figma MCP server lets AI read your variables, modes, and collections in real-time. </p><p><strong>The setup:</strong></p><ol><li><p>Install the <strong>Figma MCP server</strong> (or build your own with the MCP Design Tokens Server template)</p></li><li><p>Point it at your Figma file or your tokens JSON</p></li><li><p>Now every AI prompt you run has live access to your actual token values</p><p></p></li></ol><div><hr></div><h3>15. Use Context7, so AI always has current documentation</h3><p>AI models have a training cutoff. When you ask Claude or Cursor about Style Dictionary v4, Radix Themes, or Tailwind v4, you might get answers based on last year&#8217;s API, and not realize it until you have already built something around a deprecated method.</p><p>Your token pipeline probably depends on Style Dictionary. Your components might use Radix or shadcn. Your utility layer might be Tailwind. If AI gives you advice based on outdated docs, you waste time fixing problems that do not actually exist.</p><p><strong><a href="https://context7.com/">Context7</a> </strong>feeds AI the latest documentation for the libraries your design system depends on. Add it as a reference source in your AI workflow. When generating components or debugging token transforms, ask AI to check Context7 for the current API first.</p><div><hr></div><h3>16. Run a token drift audit with a Skill</h3><p>Teams bypass tokens. You find out weeks later when the UI looks wrong. Manually checking every PR for hardcoded colors and spacing values does not scale. And asking people to &#8220;just use tokens&#8221; in Slack is not enforcement, it is hope.</p><p><strong>A token audit Skill </strong>tells Claude Code exactly what to look for in your codebase (hardcoded hex values, raw pixel spacing, missing theme variants) and how to report it. Save it once, and anyone on your team can run it on demand or as part of their review process.</p><p><strong>Example: a token audit Skill</strong></p><pre><code><code>---
name: token-drift-audit
description: Scan codebase for hardcoded values that should use design tokens
autoload: when reviewing PRs or checking token usage
---

# Token Drift Audit

Scan the codebase for values that bypass the design token system.

## What to flag
- Hardcoded hex, rgb, or hsl colors in component files
- Raw pixel spacing values (4px, 8px, 16px, etc.)
- Inline font sizes instead of typography tokens
- Colors that exist as tokens but are written as raw values
- Primitive tokens (e.g. blue.500) used directly in components

## What to check
- All themes (Light, Dark, High Contrast) have matching token sets
- No broken token references
- Color contrast ratios meet WCAG AA (4.5:1 text, 3:1 large text)
- Naming follows the convention: {category}.{property}.{variant}

## Output format
- Group findings by severity: critical, warning, info
- Show file path and line number for each finding
- Suggest the correct token for each hardcoded value
- End with a summary count
</code></code></pre><p>Save this as <code>.claude/skills/token-drift-audit/SKILL.md</code> in your repo. Now anyone on your team can run it:</p><pre><code><code>claude "Run a token drift audit on the components/ folder"</code></code></pre><p>You catch drift in PRs, not production. And because it is a Skill, the audit is consistent. Every team member gets the same checks, the same output format, the same severity levels.</p><div><hr></div><h2>Adoption, metrics, and ROI</h2><h3>17. Build an adoption dashboard </h3><p>Leadership wants metrics. But runtime tracking (watching which developers use which components in real time) feels invasive, and the data is noisy anyway. Importing a component does not guarantee it is used correctly.</p><p>Start with build-time signals instead. Component imports, token drift counts, bypass signals (raw <code>&lt;button&gt;</code> elements, inline styles), and PR drift delta. These are facts extracted from code, not surveillance of people.</p><p><strong>Prompt:</strong></p><pre><code><code>Design a design system adoption dashboard plan.
Start with build-time metrics only:
- component imports / usage counts
- token drift counts
- bypass signals (raw &lt;button&gt;, inline styles)
- PR drift delta

Output:
1) metrics definitions
2) data sources
3) weekly reporting format</code></code></pre><p>Build-time metrics tell you what is happening in the codebase without anyone feeling watched. That is the foundation. Add complexity only when you have proven the basics are useful.</p><div><hr></div><h3>18. Find the bypass patterns that hurt consistency</h3><p>When teams bypass your design system, the instinct is to blame them. &#8220;They should have used the component.&#8221; But if people are bypassing consistently, the system is failing them. The component does not exist. The token is missing. The docs are unclear. The API is too rigid.</p><p>Bypass patterns are user research. Feed AI your drift report and ask it to identify what is recurring, why teams do it, and what the smallest fix is that you can ship this sprint.</p><p><strong>Prompt:</strong></p><pre><code><code>Given this drift report, identify the top bypass patterns.
For each bypass:
- why teams do it
- what the design system should change (component, token, docs)
- the smallest fix we can ship this sprint</code></code></pre><p>Every bypass you fix makes the system easier to use, which makes the next bypass less likely. That is how adoption compounds.</p><div><hr></div><h3>19. Generate release notes that teams will actually read</h3><p>Your changelog says &#8220;<em>updated Button component.</em>&#8221; Nobody knows what changed, who is affected, or whether they need to do anything. So nobody reads it, and then they complain they were not told about breaking changes.</p><p>Release notes for design systems need to be written for non-design-system people. What changed, why it matters for product work, and what teams need to do (if anything). AI can generate this from your changelog and merged PRs in minutes.</p><p><strong>Prompt:</strong></p><pre><code><code>Write design system release notes for non-design-system people.
Inputs: changelog + list of merged PRs.

Output:
- what changed (3-7 bullets)
- why it matters (tie to product outcomes)
- what teams need to do (if anything)
- links to migration guides</code></code></pre><p>If the release note does not say &#8220;what this means for you,&#8221; it will not get read.</p><div><hr></div><h3>20. Run your own AI design system assistant 24/7</h3><p><a href="https://docs.openclaw.ai/">OpenClaw</a> (previously clawdbot) is an open-source AI assistant that runs 24/7 on your own hardware. A ~5/month Hetzner VPS is enough. Connect it to Telegram, Slack, Discord, or WhatsApp and your team has an always-on design system expert that can actually read your repo.</p><p><strong>What it gives you:</strong></p><ul><li><p><strong>Always-on access</strong> via Telegram, Slack, Discord, or WhatsApp</p></li><li><p><strong>Full system access</strong>: it can run scripts, query your token files, check your repo</p></li><li><p><strong>Scheduled jobs</strong>: automate weekly reports, competitor checks, content generation</p></li><li><p><strong>Persistent memory</strong>: it remembers previous conversations and context</p></li><li><p><strong>Your choice of model</strong>: Claude, GPT, Gemini, DeepSeek, whatever fits your budget</p></li></ul><p><strong>Example setup for a design system team:</strong></p><ul><li><p>Morning cron job runs a token drift scan and posts results to Slack</p></li><li><p>Team members message the bot on Telegram: &#8220;What&#8217;s the current spacing scale?&#8221; It reads the actual tokens and responds</p></li><li><p>Weekly automated competitor check: &#8220;What did Polaris, Carbon, and Primer ship this week?&#8221;</p></li></ul><p><strong>A word on security:</strong> Keep this on a separate server from your production infrastructure. <strong>Give it read-only access to a clone of your token files and documentation, not your live codebase. </strong>This is a tool for answering questions, running reports, and automating research. It is not a deployment pipeline. Treat it like a team assistant with a read-only badge, not an engineer with push access.</p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;81c0ca8e-0039-45db-8e35-e3e36a776d1d&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Can OpenClaw (prev clawdbot) Become Your Personal AI Design System Agent Available 24/7?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-30T14:41:50.371Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KLwD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/can-openclaw-prev-clawdbot-become&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186237503,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:15,&quot;comment_count&quot;:0,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>The toolkit</h2><p>Here is every tool mentioned in this article and where to start:</p><p><strong><a href="https://claude.ai/">Claude Code</a></strong><br>AI coding assistant with file access, web search, and Skills</p><p><strong>MCP (Model Context Protocol)</strong><br>Connects AI to live data sources (Figma, tokens, docs). </p><ul><li><p><strong>Figma MCP</strong> for reading variables, design frames, and component metadata</p></li><li><p><strong>GitHub MCP</strong> for reading repos, PRs, issues, and component source code</p></li><li><p><strong>Slack MCP</strong> for monitoring design system requests and support channels</p></li><li><p><strong>Notion MCP</strong> for reading and writing design system documentation and decision logs</p></li><li><p><strong>PostHog MCP</strong> for querying adoption metrics, feature flags, and usage data</p></li><li><p><strong>Zapier MCP</strong> for connecting your design system workflows to Jira, Linear, and hundreds of other tools</p></li></ul><p><strong><a href="https://www.figma.com/make/">Figma Make</a></strong><br>Generates code from Figma designs using your component library. </p><p><strong><a href="https://playwright.dev/">Playwright</a></strong><br>Automated browser testing with AI agents (Planner, Generator, Healer).</p><p><strong><a href="https://context7.com/">Context7</a></strong><br>Feeds current library documentation to AI tools.</p><p><strong><a href="https://www.plugma.dev/">plugma</a></strong><br>Modern Figma plugin development toolchain. <code>npx create-plugma@latest</code></p><p><strong><a href="https://docs.openclaw.ai/">OpenClaw</a></strong><br>Self-hosted AI assistant on your own server. </p><p><strong><a href="https://posthog.com/">PostHog</a></strong><br>Product analytics platform with feature flags, session replays, and A/B testing. For design systems, it tracks component usage in production, measures adoption across teams, and gives you real data for ROI conversations with leadership. The PostHog MCP server lets AI query your analytics directly.</p><p></p><p>Enjoy exploring &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p><br><strong>Swap Wizard Figma plugin</strong></p><p>1st place at the IDS hackaton </p><p><br>&#10024; Auto-matches components even when names don't align perfectly <br>&#10024; Lets you validate and adjust mappings with live previews <br>&#10024; Handles variant properties so you pick the exact component you need <br>&#10024; Re-attaches detached components</p><p>&#128279;<a href="https://www.linkedin.com/posts/activity-7426596617509789696-lroo?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAIm0UIB6YXIAMl4tTZJpr6OKeGfXLHdRoY"> </a><strong><a href="https://swapwizardhackathon.lovable.app/#">Link</a></strong></p><p></p><p><strong>Edgy Figma plugin</strong></p><p>2nd place at the IDS Hackaton &#8594; The team explored whether a plugin could analyse flows, call out missed edge cases, and generate any missing screens directly on the canvas using an existing design system. And they did it. </p><p>&#128279;<a href="https://www.linkedin.com/posts/activity-7426596617509789696-lroo?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAIm0UIB6YXIAMl4tTZJpr6OKeGfXLHdRoY"> </a><strong><a href="https://www.linkedin.com/posts/activity-7426596617509789696-lroo?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAIm0UIB6YXIAMl4tTZJpr6OKeGfXLHdRoY">Link</a></strong></p><p></p><p><strong>Design Token Naming Guide + Builder </strong></p><p><strong>&#128279; <a href="https://www.namedesigntokens.guide/builder">Link</a> </strong></p>]]></content:encoded></item><item><title><![CDATA[Use AI to push Figma variants straight to Storybook (Step-by-step guide)]]></title><description><![CDATA[Bonus: Introducing Design Token Naming Tool 2.0]]></description><link>https://learn.thedesignsystem.guide/p/push-your-figma-components-to-storybook</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/push-your-figma-components-to-storybook</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 06 Feb 2026 08:51:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nMHS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><p><em>I am <strong>not</strong> affiliated with any of the suggested tools</em> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nMHS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nMHS!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nMHS!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9761957,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nMHS!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!nMHS!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4073d1b-aa3b-41c5-824a-b8ae9775f385_1456x970.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You spend 2 hours setting up beautiful variants in Figma. Primary, secondary, ghost. Small, medium, large. Default, hover, disabled.</p><p>Then a developer asks: &#8220;What are the props for this component?&#8221;</p><p>You explain everything again. In a meeting, in a Notion doc, or in Slack messages. The developer writes the component with slightly different naming. Now &#8220;Primary&#8221; in Figma becomes <code>type: 'main'</code> in code.</p><p>The translation layer between design and code breaks down within weeks.</p><p>Here&#8217;s the thing: <strong>your Figma variants already ARE your props</strong>. They just need to speak the same language as your code. When you set this up correctly, your Figma button with variants &#8220;Primary, Secondary, Ghost&#8221; automatically becomes a React component with <code>variant: 'primary' | 'secondary' | 'ghost'</code>, which automatically becomes interactive controls that anyone can toggle.</p><p>No manual documentation. No translation meetings. No drift.</p><div><hr></div><h2>What you will learn:</h2><ul><li><p><strong>Figma variant properties = Component props</strong>: When you name variants correctly, AI generates matching TypeScript types automatically</p></li><li><p><strong>The naming alignment is everything</strong>: &#8220;Primary&#8221; in Figma should become <code>'primary'</code> in code, not <code>'main'</code> or <code>'type1'</code></p></li><li><p><strong>Storybook controls generate from types</strong>: Clean union types mean clean dropdown controls, no configuration needed</p></li><li><p><strong>Prompts</strong>: Copy-paste prompts for every step of this workflow</p></li></ul><div><hr></div><h2>What is Storybook (and why should you care)?</h2><p><a href="https://storybook.js.org/">Storybook</a> is a <strong>free, open-source </strong>tool that lets you browse and test your components in isolation, outside of your app. Think of it as an interactive catalog of every component in your design system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CCPA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CCPA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 424w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 848w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 1272w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!CCPA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png" width="1456" height="925" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:925,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:343330,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.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_!CCPA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 424w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 848w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 1272w, https://substackcdn.com/image/fetch/$s_!CCPA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff227e54e-7872-4f84-a2b7-32eeaf264ce2_1617x1027.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why is it so useful: </p><ul><li><p><strong>You can click through every variant</strong> without spinning up the full product</p></li><li><p><strong>Controls panel</strong> lets you toggle props (size, variant, disabled) in real time</p></li><li><p><strong>Auto-generated documentation</strong> pulls from the code, so it never goes stale</p></li><li><p><strong>Shareable URL</strong> means you can send a link to anyone for review</p></li></ul><p>When your Figma naming matches the code, Storybook generates all of this automatically from your TypeScript types.</p><div><hr></div><h2>The mental model: how props flow</h2><p>Before you touch any tools, understand this flow:</p><pre><code><code>FIGMA                      CODE                        STORYBOOK
&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;
Variant property     &#8594;     Component prop       &#8594;     Control panel
"Variant: Primary"         variant: 'primary'         [Dropdown: Primary &#9660;]
"Size: Medium"             size: 'md'                 [Dropdown: Medium &#9660;]
"Disabled: True"           isDisabled: boolean        [Checkbox: &#9745;]</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YcWz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YcWz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 424w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 848w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 1272w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!YcWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png" width="1456" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75584,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.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_!YcWz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 424w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 848w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 1272w, https://substackcdn.com/image/fetch/$s_!YcWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d0dac83-065f-4a85-81d2-d83ba1b3cf94_1512x521.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>You set up Figma &#8594; AI generates the code &#8594; Storybook creates the controls.</strong></p><p>When this chain works, everything stays in sync. When it breaks (usually because Figma naming doesn&#8217;t match code conventions), you get drift.</p><p>Let&#8217;s go step by step. </p><div><hr></div><h2>Setting up Storybook</h2><p>In your React/Next.js project, run:</p><pre><code><code>npx storybook@latest init</code></code></pre><p>This creates a <code>.storybook</code> folder with configuration. Start it with:</p><pre><code><code>npm run storybook</code></code></pre><p>You&#8217;ll see a local server at http://localhost:6006 with example stories.</p><h3>Optional: Publish with Chromatic</h3><p><strong><a href="https://www.chromatic.com/">Chromatic</a></strong> publishes your Storybook online, so your entire team can browse components in a browser. Free for open source, generous free tier for everyone else.</p><p>I use this option, so I can also share the work with others. </p><p>&#8594; Sign up at chromatic.com (GitHub login works)</p><p>&#8594; Create a new project and get your project token</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PvAi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PvAi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 424w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 848w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 1272w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!PvAi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png" width="1456" height="478" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9813096-a1c6-4b84-a169-ca767809f422_1593x523.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:478,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45974,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.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_!PvAi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 424w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 848w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 1272w, https://substackcdn.com/image/fetch/$s_!PvAi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9813096-a1c6-4b84-a169-ca767809f422_1593x523.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#8594; Install and publish Chromatic:</p><pre><code><code>npm install chromatic --save-dev
npx chromatic --project-token=YOUR_TOKEN</code></code></pre><p>You&#8217;ll get a public URL to share. Chromatic also catches visual regressions when you push changes.</p><div><hr></div><h2>Setting up Figma so AI can read it</h2><p>This is the most important step. AI tools read your Figma file directly: your variant properties, layer names, and design tokens. If these are messy, the generated code will be messy.</p><p><strong>Your Figma variant property names become your prop names.</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_!llx0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!llx0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 424w, https://substackcdn.com/image/fetch/$s_!llx0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 848w, https://substackcdn.com/image/fetch/$s_!llx0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 1272w, https://substackcdn.com/image/fetch/$s_!llx0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!llx0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png" width="1456" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60904,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.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_!llx0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 424w, https://substackcdn.com/image/fetch/$s_!llx0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 848w, https://substackcdn.com/image/fetch/$s_!llx0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 1272w, https://substackcdn.com/image/fetch/$s_!llx0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe18e5112-3f23-40a4-b98f-a9e93961dc2c_2268x884.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Name your Figma variants with code-friendly values (lowercase, no spaces, consistent format), and AI generates cleaner code.</p><p><strong>Checklist before you generate</strong></p><p>Open your component in Figma and verify:</p><ul><li><p><strong>Consistent naming</strong>: All variants use the same format (sm/md/lg, not sm/Medium/LG)</p></li><li><p><strong>Code-friendly values</strong>: No spaces, lowercase preferred (primary, not &#8220;Primary Button Style&#8221;)</p></li><li><p><strong>Boolean properties for on/off states</strong>: isDisabled, isLoading, hasIcon (not &#8220;State: Disabled&#8221;)</p></li><li><p><strong>Meaningful layer names</strong>: &#8220;Leading Icon&#8221;, &#8220;Label&#8221;, &#8220;Trailing Icon&#8221; (not &#8220;Frame 47&#8221;, &#8220;Vector&#8221;, &#8220;Text&#8221;)</p></li></ul><p></p><h3>Add a component description</h3><p>Select your component set in Figma and add a description. AI reads this and uses it for context: </p><pre><code><code>Button component for user actions.

Props:
- variant: primary | secondary | ghost | danger (default: primary)
- size: sm | md | lg (default: md)
- isDisabled: boolean (default: false)
- isLoading: boolean (default: false)

Usage: Use primary for main actions, secondary for alternative actions,
ghost for tertiary actions, danger for destructive actions.</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B3hf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B3hf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 424w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 848w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 1272w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!B3hf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png" width="1456" height="567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:567,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56346,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.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_!B3hf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 424w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 848w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 1272w, https://substackcdn.com/image/fetch/$s_!B3hf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ec3921-7bb4-4b60-8364-e582b61b7b5c_1512x589.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Pick your AI tool</h2><p>You need an AI tool that can read your Figma and generate code. Here are your recommended options:</p><p><strong>Claude Code</strong> reads Figma files directly through the <a href="https://www.npmjs.com/package/figma-developer-mcp">Figma MCP server</a>. One-time setup. Claude Code can be used as an extension in any IDE or in your terminal.</p><p>Or, you can use Cursor. </p><p><strong>Cursor</strong> is an AI-powered code editor (IDE) with built-in chat. It also supports MCP servers, so you connect Figma the same way. You can switch between AI models (Claude Opus 4.6, GPT-5.2, Gemini, etc.) to compare outputs.</p><p></p><h2>The two prompts that do everything</h2><p>This is the core of the workflow. The first builds your component, the second pushes it to Storybook.</p><h3>Prompt 1: Generate the component</h3><p>Select your component in Figma, then paste this:</p><pre><code><code>Get the design context for the selected Figma component.

Generate a React component with TypeScript that:
1. Has props matching the Figma variant properties exactly
   (use the same names and values, lowercased)
2. Uses TypeScript union types for all variants
   (e.g., 'primary' | 'secondary', never just string)
3. Uses boolean props for on/off states
   (e.g., isDisabled?: boolean)
4. Adds JSDoc comments for every prop explaining:
   - What it does
   - Available options
   - Default value
5. Follows the patterns in our existing components at src/components/

Show me the generated TypeScript interface first so I can verify
the prop names and values match my Figma setup before you write
the full component.</code></code></pre><p></p><p>More detailed guide and tricks about generating components with AI here &#8594; </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;7ea0a383-3850-44bf-9705-ebe83be6901b&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Ultimate AI Component Generation Framework &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-03T10:09:26.324Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!a3HB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67bea4d7-9c61-4672-bc26-7ff74f3bc772_1456x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/the-ultimate-ai-component-generation&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:175136945,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:58,&quot;comment_count&quot;:3,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h3>What you should get back:</h3><pre><code><code>export interface ButtonProps {
  /** The visual style of the button */
  variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
  /** The size of the button */
  size?: 'sm' | 'md' | 'lg';
  /** Whether the button is disabled */
  isDisabled?: boolean;
  /** Whether to show loading state */
  isLoading?: boolean;
  /** Button content */
  children: React.ReactNode;
}</code></code></pre><p><strong>Check that the prop names and values match your Figma exactly.</strong> If AI-generated <code>type</code> instead of <code>variant</code>, or <code>small</code> instead of <code>sm</code>, tell it:</p><pre><code><code>The prop names don't match my Figma. Change "type" to "variant"
and "small/medium/large" to "sm/md/lg".</code></code></pre><p></p><h3>Prompt 2: Generate stories and run Storybook</h3><p>Once your component looks good, paste this:</p><pre><code><code>Look at the component you just created.

Generate Storybook stories that:
1. Use CSF 3.0 format with Meta and StoryObj types
2. Include the 'autodocs' tag for automatic documentation
3. Create one story for each variant
4. Create one story showing all sizes side by side
5. Create stories for every boolean state (disabled, loading, etc.)
6. Add an "AllVariants" story that renders every variant
   in a grid so I can compare them at a glance
7. Add edge case stories:
   - Long text label (50+ characters)
   - With leading and trailing icons
   - Inside a form context
8. Add a play function to the default story that:
   - Clicks the component
   - Verifies the click handler fires
   - Tests keyboard navigation (tab + enter)

Put the stories next to the component file.
Then run Storybook so I can see the result.</code></code></pre><p></p><h3>What happens next</h3><p>Open http://localhost:6006 (or whatever local address you have) You&#8217;ll see:</p><ul><li><p><strong>Live component preview</strong> you can interact with</p></li><li><p><strong>Controls panel</strong> with dropdowns for variant and size, checkboxes for isDisabled and isLoading</p></li><li><p><strong>Auto-generated docs</strong> with your JSDoc comments as prop descriptions</p></li><li><p><strong>AllVariants story</strong> showing every combination in a grid</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JhGo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JhGo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 424w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 848w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 1272w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!JhGo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png" width="1449" height="749" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:1449,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122546,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.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_!JhGo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 424w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 848w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 1272w, https://substackcdn.com/image/fetch/$s_!JhGo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F230ae331-ecc4-48f7-a03f-6046706c1a1a_1449x749.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>You didn't configure any controls. Storybook figured it out from your types.</strong> That's the whole point of getting the naming right in Figma.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SPEl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SPEl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 424w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 848w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 1272w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!SPEl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png" width="1449" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1449,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69779,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.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_!SPEl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 424w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 848w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 1272w, https://substackcdn.com/image/fetch/$s_!SPEl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23358b1c-0163-4796-a3f6-eb7961e87d85_1449x720.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h6>Check the example story <a href="https://workday.github.io/canvas-kit/?path=/story/testing-buttons-actionbar--action-bar-states">here &#8594; </a></h6><p></p><h2>When things go wrong </h2><p>Two issues come up most often:</p><p><strong>Controls don&#8217;t match your Figma variants</strong></p><p>This happens when AI uses different names than your Figma. Tell it exactly what to fix:</p><pre><code><code>Update the component types to match my Figma naming exactly:
- variant: primary | secondary | ghost | danger
- size: sm | md | lg</code></code></pre><p><strong>Types are too loose</strong></p><p>If AI typed a prop as <code>string</code> instead of specific values, tighten it:</p><pre><code><code>The size prop is typed as `string` but it should only accept
specific values. Change it to a union type: 'sm' | 'md' | 'lg'</code></code></pre><div><hr></div><h2>Why this matters</h2><p>The props connection between Figma and Storybook creates a single source of truth.</p><p>When your Figma variants, code props, and Storybook controls all use the same language:</p><ul><li><p><strong>Designers review components</strong> without asking &#8220;what did the developer call this?&#8221;</p></li><li><p><strong>Developers implement</strong> without asking &#8220;what does the designer mean by Type 2?&#8221;</p></li><li><p><strong>Documentation stays accurate</strong> because it generates from the code</p></li><li><p><strong>AI updates everything</strong> when you change the Figma source</p></li></ul><p></p><p>The biggest design system problems aren&#8217;t technical. They&#8217;re communication problems. Naming alignment solves a surprising number of them.</p><div><hr></div><h2>Inspiration: Storybooks worth exploring</h2><p>See how top companies document their components:</p><p><strong>&#128279; <a href="https://polaris.shopify.com/components">Shopify Polaris</a></strong>: Accessibility auditing, viewport testing, theme switching</p><p><strong>&#128279; <a href="https://primer.style/react/storybook">GitHub Primer</a></strong>: Clean organization, great props documentation</p><p><strong>&#128279; <a href="https://react.carbondesignsystem.com/">IBM Carbon</a></strong>: Comprehensive component library with detailed usage guidelines</p><p><strong>&#128279; <a href="https://www.bbc.co.uk/iplayer/storybook/">BBC iPlayer</a></strong>: Rebuilt their entire UI library in Storybook after a component audit</p><p><strong>&#128279; <a href="https://style.monday.com/">Monday.com Vibe</a></strong>: Beautiful welcome page, clear navigation</p><p><strong>&#128279; <a href="https://react.ui.audi/">Audi UI React</a></strong>: Brand imagery meets component documentation</p><p><strong>&#128279; <a href="https://storybook.grommet.io/">Grommet (HPE)</a></strong>: Extensive theming examples</p><p><strong>&#128279; <a href="https://wordpress.github.io/gutenberg/">WordPress Gutenberg</a></strong>: Block editor components, accessibility focus</p><p><strong>&#128279; <a href="https://jetbrains.github.io/ring-ui/">JetBrains Ring UI</a></strong>: Developer tools components, dark mode support</p><p>Browse more at the <strong><a href="https://storybook.js.org/showcase/">Storybook Showcase</a>.</strong></p><p></p><p>Enjoy exploring &#128588;</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><div><hr></div><h3>Introducing: <a href="https://www.namedesigntokens.guide/builder">Design Token Naming GUIDE + BUILDER 2.0</a> &#127881;</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KIMN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KIMN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 424w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 848w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 1272w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!KIMN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png" width="1456" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c537360c-d572-4813-a6de-32ef30443d66_1612x1134.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217109,&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://learn.thedesignsystem.guide/i/186969619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.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_!KIMN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 424w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 848w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 1272w, https://substackcdn.com/image/fetch/$s_!KIMN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc537360c-d572-4813-a6de-32ef30443d66_1612x1134.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.namedesigntokens.guide/&quot;,&quot;text&quot;:&quot;Try it here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.namedesigntokens.guide/"><span>Try it here</span></a></p><p>I built a free, interactive tool to help designers and developers improve their naming of design tokens. And maybe, build their own token systems along the way. &#128579;<br><br>Whether you're just getting started with tokens or trying to get your team on the same page, this might help. <br><br>Here's what you'll find:</p><ul><li><p>6 interactive lessons that walk you through what design tokens actually are, how they work, and how to name them well (about 15 mins total)</p></li><li><p>Token BUILDER to configure your own naming structure with components, categories, states, and roles</p></li><li><p>Primitive vs Semantic modes, so you can switch between simple scale-based tokens or full semantic naming</p></li><li><p>Live preview that shows your token names as you build them</p></li><li><p>Export-ready, so you can copy or download your tokens and start using it </p></li><li><p>Figma Variables ready format</p></li><li><p>Advanced filtering and sorting </p></li><li><p>Add values manually or put placeholders in a second <br></p></li></ul><p>The whole point is to let you quickly switch naming conventions and test what works for your project. <br><br>Feedback for improvements is always welcome. &#129782; </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Winden Tokens<br></strong>A Figma plugin for managing design tokens (variables) with a spreadsheet-style interface. Quickly create, edit, and organize your design system variables.<br><br><strong>&#128279; <a href="https://github.com/krstivoja/winden-tokens">Link</a> (GitHub)  &#128279; <a href="https://www.figma.com/community/plugin/1597659998667042080/winden-tokens-design-system-toolkit">Figma plugin</a></strong></p><div><hr></div><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;25bc626b-ff63-4e60-af2b-d7776c7f66a7&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Can OpenClaw (prev clawdbot) Become Your Personal AI Design System Agent Available 24/7?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-30T14:41:50.371Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!KLwD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/can-openclaw-prev-clawdbot-become&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186237503,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:15,&quot;comment_count&quot;:0,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!D_hv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b706a14-3910-4ad7-bf58-4acd4529a121_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[Can OpenClaw (prev clawdbot) Become Your Personal AI Design System Agent Available 24/7?]]></title><description><![CDATA[What's working and what's hype]]></description><link>https://learn.thedesignsystem.guide/p/can-openclaw-prev-clawdbot-become</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/can-openclaw-prev-clawdbot-become</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 30 Jan 2026 14:41:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KLwD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KLwD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KLwD!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KLwD!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8705746,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KLwD!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!KLwD!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86be908d-b8d8-4822-9067-12d2347dba5d_1456x970.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Design systems don&#8217;t sleep. Teams push code at midnight. Someone uses a raw hex value &#8220;just this once.&#8221; A deprecated token sneaks into production.</p><p>It&#8217;s hard to watch everything. But for &#8364;5/month, something can.</p><p>A personal AI assistant running 24/7 in the cloud. It monitors your repos, flags violations, and messages you on Telegram when something needs attention. It runs while you sleep. It&#8217;s yours to customize.</p><h2>In short</h2><ul><li><p><strong>&#8364;5/month beats &#8364;600 hardware</strong>: A Hetzner cloud server gives you 24/7 uptime without buying a Mac Mini</p></li><li><p><strong>Telegram is your control center</strong>: Message your AI from anywhere, get responses even when your laptop is closed</p></li><li><p><strong>No DevOps needed</strong>: Copy-paste commands get you from zero to running in under 2 hours</p></li><li><p><strong>Bonus: Complete command cheat sheet</strong>: Every command you need on a single page</p></li></ul><div><hr></div><h2>Why everyone&#8217;s talking about OpenClaw</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZN0g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZN0g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 424w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 848w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZN0g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png" width="1456" height="1107" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1107,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:649710,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.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_!ZN0g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 424w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 848w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!ZN0g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8eed18a-e4ee-4ace-9cdb-b170a3c33044_1484x1128.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>If you&#8217;ve been on tech X lately, you&#8217;ve probably seen the Mac Mini buying frenzy. </p><p>People are setting up dedicated machines just to run an AI assistant 24/7. One user described it as &#8220;sort of amazing knowing that we are all having the same weekend... Mac Minis and OpenClaw.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!48Gn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!48Gn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 424w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 848w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 1272w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!48Gn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png" width="468" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1584,&quot;width&quot;:1188,&quot;resizeWidth&quot;:468,&quot;bytes&quot;:463113,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.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_!48Gn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 424w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 848w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 1272w, https://substackcdn.com/image/fetch/$s_!48Gn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bcd20e-dc59-46d2-b472-679b8ee31c56_1188x1584.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So what is OpenClaw, and why are people treating it like hiring their first employee?</p><p><a href="https://openclaw.ai/">OpenClaw</a> (formerly Clawdbot, then Moltbot) is <strong>an open-source personal AI assistant </strong>created by <strong>Peter Steinberger (@steipete)</strong>. The lobster has molted twice already. Unlike ChatGPT or Claude.ai, which live in browser tabs, OpenClaw:</p><ul><li><p><strong>Runs on your hardware</strong> (Mac, Linux, Windows, Raspberry Pi, or cloud VPS)</p></li><li><p><strong>Connects through chat apps you already use</strong> (Telegram, WhatsApp, Discord, iMessage, Slack)</p></li><li><p><strong>Has full system access</strong> (can execute terminal commands, write scripts, install software)</p></li><li><p><strong>Works with any LLM</strong> (Claude, GPT, Gemini, DeepSeek, Perplexity)</p></li><li><p><strong>Remembers everything</strong> (persistent memory across sessions)</p></li><li><p><strong>Can improve itself</strong> (add new capabilities just by talking to it)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L0sC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L0sC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!L0sC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg" width="1456" height="1052" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1052,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!L0sC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 424w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 848w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!L0sC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0cff359-1d4e-478c-8c23-73f8d2bdf00e_3664x2648.jpeg 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The project has exploded: 108k GitHub stars, 15k forks, and a Discord community building skills for everything from calendar management to home automation.</p><p>What makes it viral? It feels like &#8220;the future&#8221; because it actually does things, not just chats. One user set up OpenClaw to manage multiple AI coding agents, autonomously debate code reviews, and deploy features while walking the dog. Another had it decode emergency radio frequencies using RTL-SDR hardware, which they just plugged in.</p><p>Here&#8217;s the thing, though: <strong>you don&#8217;t need a $600 Mac Mini</strong>. The creator himself keeps telling people to stop buying hardware. A &#8364;5/month cloud server works just as well, and that&#8217;s what this guide covers.</p><div><hr></div><h2>Before you start: Security is not optional</h2><p>This is not a toy. OpenClaw has<strong> full system access. </strong>It can execute terminal commands, write scripts, install software, and spin up sub-agents. If you&#8217;re not paranoid about security, you should be.</p><p><strong>Treat it like hiring a stranger with the keys to your house.</strong></p><p>Here&#8217;s what that means in practice:</p><p><strong>Isolate the environment</strong></p><ul><li><p>Run it on a dedicated server or user account, not your main machine</p></li><li><p>If using a Mac, create a separate user just for OpenClaw</p></li><li><p>A cloud VPS (like this guide covers) is actually safer than your personal laptop</p></li></ul><p><strong>Lock down messaging</strong></p><ul><li><p>Use a messaging app you don&#8217;t use for anything else (Telegram works well)</p></li><li><p>If your phone is stolen or a token is compromised, someone could impersonate you</p></li><li><p>During testing, OpenClaw sent emails <em>as</em> one user rather than <em>for</em> them. Careful prompting required.</p></li></ul><p><strong>Use the &#8220;new employee&#8221; rule</strong></p><ul><li><p>Don&#8217;t give it your primary email, passwords, or personal accounts</p></li><li><p>Create separate accounts with limited access (e.g., read-only calendar access)</p></li><li><p>Use a dedicated password vault with only the credentials OpenClaw needs</p></li><li><p>When OAuth asks for permissions, manually restrict to only what&#8217;s necessary</p></li></ul><p><strong>Think about what you&#8217;re exposing</strong></p><ul><li><p>Your calendar has your kids&#8217; school schedules, doctor appointments, and home address</p></li><li><p>Your repos have API keys, deployment configs, and business logic</p></li><li><p>Ask yourself: would you hand this to a contractor you just met?</p></li></ul><p><strong>Have an exit plan</strong></p><ul><li><p>Know how to revoke all tokens and API keys</p></li><li><p>Know how to delete the Telegram bot</p></li><li><p>Know how to wipe the server</p></li></ul><p>If you haven&#8217;t done a security tabletop exercise for this, do one before you start. The power is real. So are the risks.</p><div><hr></div><h2>OpenClaw vs Claude Code: When to use which?</h2><p>If you already use Claude Code, you might wonder why you&#8217;d bother with OpenClaw. Fair question.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q8cn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q8cn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 424w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 848w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 1272w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q8cn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png" width="1456" height="689" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:689,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94920,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.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_!Q8cn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 424w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 848w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 1272w, https://substackcdn.com/image/fetch/$s_!Q8cn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ccf200-9b31-4bf4-8a4b-6a7ae945593c_2268x1073.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>When OpenClaw makes sense:</strong></p><ul><li><p>You want something running while you sleep (&#8221;Research competitor APIs and summarize by morning&#8221;)</p></li><li><p>You need an assistant available from your phone, anywhere</p></li><li><p>You want to monitor repos, get alerts, or run scheduled tasks</p></li><li><p>You&#8217;re building workflows that span hours or days</p></li></ul><p><strong>When Claude Code is better:</strong></p><ul><li><p>Active coding where you need fast feedback loops</p></li><li><p>Working on local files in your IDE</p></li><li><p>You want tight integration with your development environment</p></li><li><p>Latency matters (OpenClaw&#8217;s Telegram round-trip adds delay)</p></li></ul><p><strong>The honest answer:</strong> They complement each other. Claude Code for real-time coding. OpenClaw for &#8220;set it and forget it&#8221; tasks that run while you&#8217;re not at your desk.</p><h2>The architecture </h2><p>Here&#8217;s what you&#8217;re building:</p><pre><code><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;         HETZNER SERVER              &#9474;
&#9474;         (runs 24/7 in the cloud)    &#9474;
&#9474;                                     &#9474;
&#9474;    &#8226; OpenClaw installed here        &#9474;
&#9474;    &#8226; Always online                  &#9474;
&#9474;    &#8226; &#8364;4-5/month                     &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
              &#8597;
        &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
        &#9474;  Telegram   &#9474;  &#8592; You control it from here
        &#9474;  (phone or  &#9474;     (anywhere in the world)
        &#9474;   desktop)  &#9474;
        &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
</code></code></pre><p>Your laptop is only needed for the initial setup. Once configured, OpenClaw runs independently. </p><h2>Part 1: Create your Telegram bot</h2><p>Before touching any servers, let&#8217;s set up the Telegram bot you&#8217;ll use to control everything. You can, of course, use any other messaging service, but again,&nbsp;<strong>be careful&nbsp;</strong>with which account (better to create a new one than share your real one). </p><p><strong>Step 1: Talk to BotFather</strong></p><p>Open Telegram and search for <code>@BotFather</code>. This is Telegram&#8217;s official bot for creating bots. Start a chat and send:</p><pre><code><code>/start</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cI1F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cI1F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 424w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 848w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 1272w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!cI1F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png" width="285" height="584.5813953488372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1323,&quot;width&quot;:645,&quot;resizeWidth&quot;:285,&quot;bytes&quot;:436001,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.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_!cI1F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 424w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 848w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 1272w, https://substackcdn.com/image/fetch/$s_!cI1F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e950aec-4580-4b17-8302-e79f93e1db00_645x1323.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>BotFather will ask you two questions:</p><ol><li><p><strong>Name:</strong> This is the display name. Call it whatever you want (e.g., &#8220;Mochi&#8221;)</p></li><li><p><strong>Username:</strong> Must end in <code>bot</code>. Something like <code>puffy_assistant_bot</code></p></li></ol><p>BotFather then gives you a token that looks like this:</p><pre><code><code>123456789:ABCdefGHIjklMNOpqrsTUVwxyz</code></code></pre><p><strong>Save this token somewhere safe.</strong> You&#8217;ll need it later.</p><p></p><p><strong>Step 2: Get your Chat ID</strong></p><p>Now you need your personal Chat ID so the bot knows who to talk to.</p><ol><li><p>Find your new bot in Telegram (search for the username you just created)</p></li><li><p>Send it <code>/start</code></p></li><li><p>Open this URL in your browser, replacing <code>YOUR_TOKEN</code> with the token from BotFather:</p></li></ol><pre><code><code>https://api.telegram.org/botYOUR_TOKEN/getUpdates</code></code></pre><p>Look for <code>"id"</code> in the response. It&#8217;s a number like <code>123456789</code>. That&#8217;s your Chat ID.</p><p><strong>Common issue:</strong> If you see <code>{"ok":true,"result":[]}</code>, the message expired. Go back to Telegram, send <code>/start</code> again, then refresh the URL within a few seconds.</p><h3>What you should have now</h3><p>ItemExampleWhere you got itBot Token<code>123456789:ABCdef...</code>From BotFatherChat ID<code>123456789</code>From the getUpdates URL</p><p>Keep these somewhere safe. You&#8217;ll paste them during server setup.</p><div><hr></div><h2>Part 2: Set up your Hetzner server</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yaVY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yaVY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 424w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 848w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 1272w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!yaVY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png" width="1224" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:1224,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58810,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.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_!yaVY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 424w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 848w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 1272w, https://substackcdn.com/image/fetch/$s_!yaVY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01d3d8b3-8d36-4f9c-ac00-d132eda938c4_1224x436.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Step 1: Create a Hetzner account</strong></p><p>Go to <a href="https://www.hetzner.com/cloud">hetzner.com/cloud</a> and sign up. You&#8217;ll need to add a payment method (credit card works).</p><p><strong>Step 2: Generate an SSH key</strong></p><p>SSH keys let you log into your server without a password. On your Mac or PC, open Terminal and run:</p><pre><code><code>ssh-keygen -t ed25519 -C "your@email.com"</code></code></pre><p>When it asks questions:</p><ul><li><p><strong>File location:</strong> Press Enter to accept the default</p></li><li><p><strong>Passphrase:</strong> Press Enter twice (no passphrase makes things easier)</p></li></ul><p>Now copy your public key:</p><pre><code><code>cat ~/.ssh/id_ed25519.pub</code></code></pre><p>You&#8217;ll see something like:</p><pre><code><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your@email.com</code></code></pre><p><strong>Copy that entire line.</strong> You&#8217;ll paste it into Hetzner.</p><p></p><p><strong>Step 3: Create the server</strong></p><ol><li><p>Go to <a href="https://console.hetzner.cloud/">console.hetzner.cloud</a></p></li><li><p>Create a project (name it whatever you want)</p></li><li><p>Click <strong>+ Create Server</strong></p></li></ol><p>Use these settings:</p><ul><li><p><strong>Location</strong>: Falkenstein or Helsinki</p></li><li><p><strong>Image</strong>: Ubuntu 24.04</p></li><li><p><strong>Type</strong>: Shared Resources &#8594; Cost-Optimized &#8594; <strong>CX22</strong></p></li><li><p><strong>SSH Keys</strong>: Click &#8220;Add SSH Key&#8221; and paste your public key</p></li><li><p><strong>Name</strong>: <code>openclaw-agent</code></p></li></ul><p>Click <strong>Create &amp; Buy now</strong>. In about 30 seconds, you&#8217;ll have a server with an IP address like <code>112.111.2.221</code>.</p><p></p><h3>Step 4: Connect to your server</h3><p>In Terminal, run:</p><pre><code><code>ssh root@YOUR_SERVER_IP</code></code></pre><p>Replace <code>YOUR_SERVER_IP</code> with the actual IP from Hetzner. When it asks &#8220;Are you sure you want to continue connecting?&#8221; type <code>yes</code>.</p><p>You should see:</p><pre><code><code>Welcome to Ubuntu 24.04.3 LTS
root@ubuntu-4gb-hel1-1:~#</code></code></pre><p>You&#8217;re now inside your cloud server. Everything you type runs there, not on your laptop. First win! &#129395;</p><div><hr></div><h2>Part 3: Install OpenClaw</h2><p>Now the fun part. You&#8217;re on your server via SSH. Let&#8217;s install the AI.</p><p><strong>Step 1: Update the system</strong></p><p>Run this first (takes 1-2 minutes):</p><pre><code><code>apt update &amp;&amp; apt upgrade -y</code></code></pre><p><strong>Step 2: Install Node.js and OpenClaw</strong></p><p>OpenClaw requires Node.js 22 or newer. Install it first:</p><pre><code><code>curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs</code></code></pre><p>Now install OpenClaw:</p><pre><code><code>npm install -g openclaw@latest</code></code></pre><p>Then run the onboarding wizard:</p><pre><code><code>openclaw onboard --install-daemon</code></code></pre><p>The wizard walks you through:</p><ul><li><p>Accepting the security warning</p></li><li><p>Choosing your AI provider (Anthropic, OpenAI, etc.)</p></li><li><p>Pasting your API key</p></li><li><p>Configuring messaging channels</p></li></ul><p></p><p><strong>Step 3: Give your bot a personality</strong></p><p>OpenClaw asks what it should be. Type something like:</p><pre><code><code>Your name is Mochi. You're my AI assistant for design systems and coding projects. You help me monitor GitHub repos, analyze code, and automate tasks. Be helpful, proactive, and friendly.</code></code></pre><p>Press Enter.</p><p></p><h3>Step 4: Connect GitHub (optional but useful)</h3><p>If OpenClaw asks for GitHub access:</p><ol><li><p>Go to <a href="https://github.com/settings/tokens">github.com/settings/tokens</a></p></li><li><p>Click <strong>Generate new token (classic)</strong></p></li><li><p>Name it <code>openclaw</code></p></li><li><p>Check the <strong>repo</strong> scope</p></li><li><p>Generate and copy the token (starts with <code>ghp_...</code>)</p></li><li><p>Paste it into OpenClaw</p><p></p></li></ol><div><hr></div><h2>Part 4: Connect Telegram</h2><p>Almost there. Let&#8217;s hook up your bot to Telegram.</p><p>During onboarding, OpenClaw asks which messaging channels you want to use. Select Telegram and enter:</p><ul><li><p><strong>Bot Token:</strong> The token from BotFather</p></li><li><p><strong>Chat ID:</strong> Your personal Chat ID</p></li></ul><p>If you skipped this during onboarding, you can re-run:</p><pre><code><code>openclaw onboard</code></code></pre><p>And select Telegram when prompted for channels.</p><h3>Test it</h3><ol><li><p>Open Telegram on your phone</p></li><li><p>Go to your bot&#8217;s chat</p></li><li><p>Send: <code>hello</code></p></li></ol><p>You should get a response from your bot. If you do, it&#8217;s working.</p><div><hr></div><h2>Part 5: Keep it running forever</h2><p>When you connect to your server, you&#8217;re opening a &#8220;session.&#8221; Any programs you start live inside that session. When you close your laptop, disconnect from WiFi, or just close the Terminal window, that session ends. And when the session ends, everything running inside it gets killed.</p><p>It&#8217;s like having a conversation on the phone. The moment you hang up, the conversation stops. What we need is a way to start OpenClaw and have it keep running even after we &#8220;hang up&#8221; our SSH connection.</p><p>That&#8217;s what process managers do. They run your program in the background, completely independent of your SSH session. Even better, they can restart your program automatically if it crashes or if the server reboots.</p><p></p><h3>Option 1: PM2 (recommended)</h3><p>PM2 is the most popular process manager for Node.js applications. Think of it as a babysitter for your programs - it watches them, restarts them if they crash, and keeps logs of what happened.</p><pre><code><code>npm install -g pm2</code></code></pre><p>This installs PM2 globally on your server. You only need to do this once.</p><pre><code><code>pm2 start openclaw --name "openclaw"</code></code></pre><p>This tells PM2 to start OpenClaw and give it the nickname &#8220;openclaw&#8221; (so you can refer to it later). PM2 immediately moves it to the background.</p><pre><code><code>pm2 save</code></code></pre><p>This saves your current setup. PM2 now remembers that it should be running OpenClaw.</p><pre><code><code>pm2 startup</code></code></pre><p>This is the magic command. It creates a system service that starts PM2 automatically when your server boots up. PM2 then starts all saved processes (including OpenClaw).</p><p><strong>The result:</strong> You can now close your Terminal, shut down your laptop, go on vacation. OpenClaw keeps running. If the server restarts for any reason (updates, maintenance), OpenClaw comes back automatically.</p><h3>Verify it&#8217;s running</h3><p>After setting up PM2 (or daemon mode), disconnect from your server:</p><pre><code><code>exit</code></code></pre><p>Wait a few seconds, then send a message to your bot on Telegram. If it responds, congratulations - your AI assistant is now running independently of your computer.</p><h3>Check status anytime</h3><p>You can always SSH back in and check on things:</p><pre><code><code>pm2 list
# or
systemctl status openclaw</code></code></pre><div><hr></div><h2>Command Cheat Sheet</h2><p>Copy this and keep it somewhere handy:</p><pre><code><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;                   OPENCLAW CHEAT SHEET                      &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; SERVER CONNECTION                                           &#9474;
&#9474;   ssh root@YOUR_IP          Connect to server               &#9474;
&#9474;   exit                      Disconnect from server          &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; OPENCLAW COMMANDS                                           &#9474;
&#9474;   openclaw onboard          Run setup wizard                &#9474;
&#9474;   openclaw onboard --install-daemon  Setup + auto-start     &#9474;
&#9474;   openclaw gateway          Start the control plane         &#9474;
&#9474;   openclaw agent --message  Send a task to your agent       &#9474;
&#9474;   openclaw doctor           Diagnose issues                 &#9474;
&#9474;   openclaw update           Update to latest version        &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; PM2 COMMANDS (PROCESS MANAGER)                              &#9474;
&#9474;   pm2 list                  Show running processes          &#9474;
&#9474;   pm2 logs openclaw          View live logs                  &#9474;
&#9474;   pm2 restart openclaw       Restart the bot                 &#9474;
&#9474;   pm2 stop openclaw          Stop the bot                    &#9474;
&#9474;   pm2 save                  Save current config             &#9474;
&#9474;   pm2 startup               Enable auto-start on boot       &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; SKILLS (via ClawdHub)                                       &#9474;
&#9474;   clawdhub install &lt;slug&gt;   Install a skill                 &#9474;
&#9474;   clawdhub update --all     Update all skills               &#9474;
&#9474;   Skills dir: ~/clawd/skills/                               &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; IN-CHAT COMMANDS                                            &#9474;
&#9474;   /status                   Show model and token usage      &#9474;
&#9474;   /new or /reset            Clear session history           &#9474;
&#9474;   /think &lt;level&gt;            Set reasoning depth             &#9474;
&#9474;   /verbose on|off           Toggle detailed output          &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
</code></code></pre><p></p><h2>Troubleshooting</h2><p><strong>&#8220;Connection refused&#8221; when SSHing</strong><br>Double-check the IP address in Hetzner&#8217;s dashboard.</p><p><strong>OpenClaw command not found</strong><br>Run the install script again, then <code>source ~/.bashrc</code>.</p><p><strong>Bot not responding on Telegram</strong><br>Check the service status with <code>systemctl status openclaw</code> or <code>pm2 list</code>. Verify your Bot Token and Chat ID are correct by re-running <code>openclaw onboard</code>.</p><p><strong>Got disconnected from SSH</strong><br>Just reconnect with <code>ssh root@YOUR_IP</code>. OpenClaw keeps running if you set up PM2. </p><div><hr></div><h2>Cost breakdown</h2><p><strong>Infrastructure:</strong></p><ul><li><p><strong>Hetzner CX22</strong>: ~&#8364;4.35/month</p></li></ul><p></p><p><strong>AI Models (per 1M tokens in / out):</strong></p><ul><li><p><strong>Claude 3.5 Sonnet</strong>: $3 / $15 (~$0.01-0.03 per message)</p></li><li><p><strong>Claude 3.5 Haiku</strong>: $0.80 / $4 (~$0.005 per message)</p></li><li><p><strong>GPT-4o</strong>: $2.50 / $10 (~$0.01-0.02 per message)</p></li><li><p><strong>GPT-4o mini</strong>: $0.15 / $0.60 (~$0.001 per message)</p></li><li><p><strong>DeepSeek V3</strong>: $0.27 / $1.10 (~$0.002 per message)</p></li></ul><p></p><p><strong>Realistic monthly API costs:</strong></p><ul><li><p>Light use (10 messages/day): $3-10/month</p></li><li><p>Moderate use (50 messages/day): $15-50/month</p></li><li><p>Heavy use (automated tasks running overnight): $50 &#8594; </p><p></p></li></ul><h3>Mac Mini vs. Server Cost Comparison</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3YGl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3YGl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 424w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 848w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!3YGl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png" width="1456" height="687" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:687,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55566,&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://learn.thedesignsystem.guide/i/186237503?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.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_!3YGl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 424w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 848w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!3YGl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3230a568-739d-4e20-9e0b-9bfff7b6b547_2268x1070.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>The Complete System </h2><p>The guide above gets you a working AI assistant. But if you want OpenClaw to actually help with design system work, you need the right skills and configuration.</p><p></p><h3>1. Design System Skills Pack</h3><p>Skills teach OpenClaw how to use tools. Each skill is a <code>SKILL.md</code> file with instructions. Browse available skills at <a href="https://clawdhub.com/">ClawdHub</a>.</p><p><strong>Install skills via ClawdHub CLI:</strong></p><pre><code><code>clawdhub install steipete/bird      # Twitter/X access
clawdhub install steipete/goplaces  # Google Places API
clawdhub update --all               # Update all installed skills</code></code></pre><p><strong>Some useful skills for design system work:</strong></p><ul><li><p><code>bird</code>: Monitor design system discussions on X, post updates</p></li><li><p><strong>Web browsing</strong> (bundled): Research design patterns, check documentation</p></li><li><p><strong>File system</strong> (bundled): Monitor token files, read component code</p></li><li><p><strong>Git</strong> (bundled): Track repo changes, review commits</p></li></ul><p></p><p><strong>Create your own skill:</strong></p><p>Skills live in <code>~/clawd/skills/</code>. Create a folder with a <code>SKILL.md</code>:</p><pre><code><code>---
name: token-validator
description: Validates design token usage in code files
---

## Instructions

When asked to validate tokens:
1. Scan files for raw hex colors (#XXXXXX)
2. Check for primitive tokens used in components
3. Report violations with file paths and line numbers
</code></code></pre><p>OpenClaw learns from your SKILL.md and applies those instructions when relevant.</p><p></p><h3>2. SOUL.md Template</h3><p>This is the personality file that shapes how OpenClaw thinks and responds. Copy this into <code>~/clawd/SOUL.md</code>:</p><pre><code><code># Identity

You are a Design System Assistant specialized in helping design and engineering teams maintain consistency, quality, and adoption of their design system.

## Core responsibilities

1. **Token management**: Monitor token files for changes, validate naming conventions, flag breaking changes
2. **Component health**: Track component usage, identify inconsistencies, suggest consolidation opportunities
3. **Documentation**: Keep docs current, generate changelogs, answer team questions
4. **Adoption support**: Help teams migrate to new components, explain design decisions, provide code examples

## How you communicate

- Be direct and specific. "Button uses wrong token" not "there might be an issue"
- Include file paths and line numbers when referencing code
- Provide copy-paste solutions when possible
- Flag severity: &#128308; breaking, &#128993; warning, &#128994; info

## What you monitor

- Changes to `/tokens/` directory
- PRs that modify component files
- Issues tagged with `design-system`
- Figma file updates (when connected)

## Scheduled tasks

- **Daily 9am**: Summarize overnight PRs affecting design system
- **Weekly Monday**: Generate component usage report
- **On PR merge**: Check for token violations in changed files

## Token naming conventions

Follow this hierarchy:
- Primitive: `color.blue.500`, `spacing.4`
- Semantic: `color.background.primary`, `color.text.danger`
- Component: `button.background.default`, `input.border.focus`

Flag violations when:
- Raw hex values used instead of tokens
- Primitive tokens used directly in components
- Semantic intent doesn't match usage (e.g., `danger` on non-destructive action)

## Response format for alerts

When alerting about issues, use this format:

**[SEVERITY] Issue Title**
- File: `path/to/file.ts:42`
- Problem: What's wrong
- Fix: How to resolve it
- Context: Why this matters
</code></code></pre><p>Customize the scheduled tasks and monitoring paths to match your repo structure.</p><div><hr></div><h3>3. GitHub Webhook Setup</h3><p>Make OpenClaw respond to repository events in real time. This requires the Gateway service to be running.</p><p></p><p><strong>Step 1: Generate a webhook secret</strong></p><p>Ask it to create a webhook based on your configuration and it will help you. </p><p><strong>Step 4: Add webhook to GitHub</strong></p><ol><li><p>Go to your repo &#8594; Settings &#8594; Webhooks &#8594; Add webhook</p></li><li><p><strong>Payload URL</strong>: <code>https://webhook.yourdomain.com/github</code></p></li><li><p><strong>Content type</strong>: <code>application/json</code></p></li><li><p><strong>Secret</strong>: The hex string from Step 1</p></li><li><p><strong>Events</strong>: Select &#8220;Let me select individual events&#8221;</p><ul><li><p>Pull requests</p></li><li><p>Push</p></li><li><p>Issues</p></li><li><p>Issue comments</p></li></ul></li></ol><p><strong>Step 5: Test it</strong></p><p>Create a test PR. Within seconds, OpenClaw should message you on Telegram with a summary.</p><div><hr></div><h3>4. Automation Recipes</h3><p>Five ready-to-use workflows. Tell OpenClaw to set these up, or configure manually.</p><p><strong>&#10024; Recipe 1: Token Sync Alerts</strong></p><p>Trigger: Any push to <code>tokens/</code> directory</p><pre><code><code>When files in /tokens/ change:
1. Parse the diff
2. Identify added/removed/modified tokens
3. Check for breaking changes (removed or renamed tokens)
4. Send Telegram alert with summary
5. If breaking: tag as &#128308;, list affected components</code></code></pre><p></p><p><strong>&#10024;  Recipe 2: PR Review Summaries</strong></p><p>Trigger: New PR opened</p><pre><code><code>When a new PR is opened:
1. Read the PR description and changed files
2. Identify design system impact:
   - New components?
   - Token changes?
   - Breaking changes?
3. Generate summary for Telegram:
   - PR title and author
   - Files changed (grouped by type)
   - Design system impact assessment
   - Suggested reviewers</code></code></pre><p></p><p><strong>&#10024; Recipe 3: Component Usage Reports</strong></p><p>Trigger: Weekly (Monday 9am)</p><pre><code><code>Every Monday at 9am:
1. Scan codebase for component imports
2. Count usage per component
3. Identify:
   - Most used components
   - Unused components (candidates for deprecation)
   - Components with declining usage
4. Generate markdown report
5. Post to Slack/Telegram and save to /reports/</code></code></pre><p></p><p><strong>&#10024;  Recipe 4: Documentation Updates</strong></p><p>Trigger: Component file changes merged to main</p><pre><code><code>When component files change on main:
1. Parse the component's props/API
2. Compare with existing documentation
3. If mismatched:
   - Generate updated docs
   - Create PR with changes
   - Alert on Telegram</code></code></pre><p></p><p><strong>&#10024; Recipe 5: Weekly Health Check</strong></p><p>Trigger: Sunday 8pm</p><pre><code><code>Every Sunday at 8pm:
1. Run token validation across all files
2. Check for console warnings in component tests
3. Verify all components have documentation
4. Count open design system issues
5. Generate health score (0-100)
6. Send weekly digest:
   - Health score trend
   - Top 3 issues to address
   - Wins from this week</code></code></pre><p><strong>How to set up a recipe:</strong></p><p>Tell OpenClaw in plain English:</p><pre><code><code>Set up a scheduled task: Every Monday at 9am, scan the codebase
for component imports, count how often each is used, and send
me a summary on Telegram. Save the full report to /reports/weekly/
</code></code></pre><p>OpenClaw will create the automation and confirm the schedule.</p><p></p><p><strong>Are you stuck?</strong></p><ol><li><p>Check the <a href="https://discord.gg/openclaw">OpenClaw Discord</a> for community help</p></li><li><p>Search <a href="https://github.com/openclaw/openclaw/issues">GitHub Issues</a></p></li><li><p>Run <code>openclaw doctor</code> for automated diagnostics</p></li></ol><div><hr></div><h2>What&#8217;s next</h2><p>Once you have OpenClaw running:</p><ol><li><p><strong>Browse and install skills</strong> from <a href="https://clawdhub.com/">ClawdHub</a>:</p></li></ol><pre><code><code>clawdhub install steipete/bird
clawdhub install steipete/goplaces</code></code></pre><ol><li><p><strong>Set up GitHub webhooks</strong> so your AI monitors your repos</p></li><li><p><strong>Add more integrations</strong> like Discord or Slack</p></li><li><p><strong>Customize the personality</strong> by editing SOUL.md in your workspace</p></li></ol><div><hr></div><p>You now have a personal AI assistant running 24/7 in the cloud. You control it from Telegram on your phone. And unlike ChatGPT or Claude.ai, it&#8217;s yours to customize however you want.</p><p>More to come &#8230; </p><p>Enjoy exploring and stay careful. &#128588;</p><div><hr></div><p><strong>Explore more </strong></p><p>&#128279; <a href="https://www.hetzner.com/cloud">Hetzner Cloud</a> &#8594; Affordable European cloud hosting</p><p>&#128279; <a href="https://docs.openclaw.ai/">OpenClaw Documentation</a> &#8594; Official documentation</p><p>&#128279; <a href="https://github.com/steipete/openclaw">OpenClaw GitHub</a> &#8594; Source code and issues</p><p>&#128279; <a href="https://openclaw.ai/">OpenClaw Website</a> &#8594; Project homepage</p><p>&#128279; <a href="https://t.me/botfather">Telegram BotFather</a> &#8594; Create Telegram bots</p><p>&#128279; <a href="https://console.anthropic.com/">Anthropic Console</a> &#8594; Get your Claude API key</p><p>&#128279; <a href="https://pm2.keymetrics.io/">PM2</a> &#8594; Node.js process manager</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><strong>Figma Console MCP Repo by TJ Pitre </strong></p><p>Your design system as an API. Connect AI to Figma for extraction, creation, and debugging.<br><br><strong>&#128279; <a href="https://github.com/southleft/figma-console-mcp">Link</a></strong></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b552e4d6-f367-4319-9309-e47ba1dbd1b0&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I'd build a design system if I started over in 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-09T11:59:19.321Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UYfg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F726c7543-bb4a-407f-9f14-4d1c9e81c1f1_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-id-build-a-design-system-if-i&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:183904911,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:53,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Iz0L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6d070f0-1ad0-4b70-afd1-f43f4c22f606_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p>]]></content:encoded></item><item><title><![CDATA[Design systems team structure in 2026]]></title><description><![CDATA[AI changed it]]></description><link>https://learn.thedesignsystem.guide/p/design-systems-team-structure-in</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/design-systems-team-structure-in</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 23 Jan 2026 13:58:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HKBJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HKBJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HKBJ!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HKBJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14198791,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/185401383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HKBJ!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!HKBJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee2f53bb-7ab6-449b-9c5e-49764cfc5f32_1456x970.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re anything like me, you&#8217;re tired of the same recycled advice about design system teams.</p><p>&#8220;Hire a design systems engineer.&#8221; &#8220;You need a dedicated team of 5.&#8221; &#8220;Document everything.&#8221; The playbooks written in 2022 still get passed around as gospel, even though the world shifted A LOT. </p><p><strong>The &#8220;right&#8221; team size changed dramatically in the past two years.</strong> What required 3 people in 2023 can now often be done by 1 person with the right AI toolkit. And what required a much larger enterprise org can now often be done by a smaller, senior team. Well, if the whole delivery system evolves (review, testing, release), not just &#8220;writing code.&#8221;</p><p>But here&#8217;s the uncomfortable part:<strong> the landscape now changes almost weekly.</strong></p><p>New AI capabilities drop constantly. Claude gets better. Cursor ships new features. MCP servers unlock new integrations. What was impossible 6 months ago becomes trivial this month.</p><p>This creates a paralyzing question I hear from every design system team: <strong>when does it make sense to invest in upskilling?</strong></p><p>Most teams are stuck in this loop:</p><ul><li><p>&#8220;We should probably learn these AI tools properly.&#8221;</p></li><li><p>&#8220;We should create our own LLM.&#8221;</p></li><li><p>&#8220;But what if everything changes again next month?&#8221;</p></li><li><p>&#8220;The time investment feels bigger than the payoff.&#8221;</p></li><li><p>&#8220;Let&#8217;s wait until things stabilize.&#8221; &#129760;</p></li></ul><p>The problem? <strong>Things won&#8217;t stabilize. </strong></p><p>The teams waiting for the &#8220;right time&#8221; are falling further behind those that have accepted that continuous learning is now part of the job.</p><p>The ROI calculation has flipped. The question isn&#8217;t &#8220;is it worth the investment?&#8221;<strong> It&#8217;s &#8220;can you afford NOT to, when your competitors are shipping 2-3x faster?</strong>&#8221;</p><p>This isn&#8217;t about replacing humans. It&#8217;s about understanding which roles become MORE important with AI, and which tasks you can delegate to AI tools.</p><p>I want to share 5 ideas on design system team structure that challenge the conventional wisdom and actually reflect reality in 2026.</p><p>Let&#8217;s begin.</p><div><hr></div><h2>The cheat sheet: company size &#8594; team structure </h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tzQb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tzQb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!tzQb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png" width="1456" height="1733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1112566,&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://learn.thedesignsystem.guide/i/185401383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.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_!tzQb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 424w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 848w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 1272w, https://substackcdn.com/image/fetch/$s_!tzQb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ef048a-5586-4e34-a226-3a160bab3b2b_2268x2700.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>You aren&#8217;t struggling with headcount. You&#8217;re struggling with leverage.</h2><p>Most design system leads I talk to have the same complaint: &#8220;We need more people.&#8221;</p><p>But when I dig into how they spend their time, I find the same pattern. Senior engineers writing documentation. Designers are manually auditing token usage. Leads are drowning in Slack support requests while their roadmap collects dust.</p><p>They don&#8217;t have a headcount problem. They have a leverage problem.</p><p><strong>The reality is that design system work falls into two categories: work that requires human judgment and work that doesn&#8217;t.</strong></p><p>Human judgment work:</p><ul><li><p>Deciding which components to build next</p></li><li><p>Designing APIs that will scale</p></li><li><p>Building relationships with product teams</p></li><li><p>Navigating organizational politics</p></li><li><p>Solving novel accessibility challenges</p></li></ul><p>Non-judgment work:</p><ul><li><p>Writing the first draft of documentation</p></li><li><p>Scaffolding component boilerplate</p></li><li><p>Auditing tokens for consistency</p></li><li><p>Generating changelogs from commits</p></li><li><p>Triaging support tickets</p></li></ul><p>In 2023, we had to do both categories ourselves. In 2026, AI handles the second category with minimal oversight.</p><blockquote><p><strong>If you want to scale your design system, you must have the systems that create scale before you add headcount.</strong></p></blockquote><p>Most teams add people first. Then wonder why the output doesn&#8217;t double. The new person gets absorbed into the same inefficient workflows. You pay for two people to do what one person with better leverage could accomplish.</p><p>I&#8217;ve seen 3-person teams outperform 10-person teams. Not because they worked harder. Because they understood which work to automate, which to delegate, and which to own.</p><p>The team of 10? They had more hands, but every hand was doing low-leverage work.</p><div><hr></div><h2>The traditional team models are obsolete. Here&#8217;s what replaced them.</h2><p></p><h3>The 1-person design system team (2026 edition)</h3><p>You&#8217;re alone. You have to:</p><ul><li><p>Design components in Figma</p></li><li><p>Build them in code</p></li><li><p>Write documentation</p></li><li><p>Evangelize adoption</p></li><li><p>Handle support requests</p></li><li><p>Maintain governance</p></li><li><p>Plan the roadmap</p></li></ul><p>In 2023, this was nearly impossible to do well. Something always suffered (usually documentation and adoption).</p><p>But even with AI, there&#8217;s a ceiling. One person cannot:</p><ul><li><p>Build deep relationships across 10+ product teams</p></li><li><p>Ship major components AND do adoption evangelism simultaneously</p></li><li><p>Handle a design system used by 100+ developers</p></li></ul><p>AI extends your reach. It doesn&#8217;t give you infinite capacity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aYeM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aYeM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 424w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 848w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 1272w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!aYeM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png" width="1456" height="523" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:523,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95006,&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://learn.thedesignsystem.guide/i/185401383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.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_!aYeM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 424w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 848w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 1272w, https://substackcdn.com/image/fetch/$s_!aYeM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2966167-aaa8-4b83-9e2d-e3791febdbe9_2880x1034.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Warning: The 1-person + AI model only works if...</h4><p>This model is compelling, but it&#8217;s easy to dangerously over-generalize. It only works under specific conditions:</p><ul><li><p><strong>Senior-level experience</strong> <br>You&#8217;ve shipped design systems before. You know what good looks like. AI can&#8217;t replace the judgment you&#8217;ve built over years.</p></li><li><p><strong>Organizational trust</strong> <br>Leadership gives you autonomy to make decisions without endless approval cycles. If every component needs a committee, AI won&#8217;t save you.</p></li><li><p><strong>Product maturity</strong> <br>Your company&#8217;s product patterns are relatively stable. If requirements change weekly, you&#8217;ll spend all your time on context-switching, not leveraging AI.</p></li><li><p><strong>Technical foundation</strong> <br>You can set up your own tooling. If you need someone else to configure CI/CD, MCP servers, or AI integrations, this model breaks down.</p></li><li><p><strong>Scope discipline</strong> <br>You can say &#8220;no&#8221; to requests. One person + AI can maintain 20-40 components well. Trying to maintain 100 components solo is a path to burnout.</p></li></ul><p></p><p><strong>Red flags this model won&#8217;t work:</strong></p><ul><li><p>Your org expects a &#8220;design system team&#8221; to also run the component library, documentation site, design ops, AND Figma governance</p></li><li><p>You&#8217;re expected to support 5+ product teams with conflicting priorities, design changes, endless meetings, etc.</p></li><li><p>There&#8217;s no executive sponsor who shields you from scope creep</p></li><li><p>You&#8217;re junior/mid-level and still building core design system skills</p></li></ul><p>If you don&#8217;t have these prerequisites, push for a 3-person team before accepting the solo + AI role.</p><p></p><h3>The 3-person model</h3><p><strong>The 3-person model (2023):</strong></p><ul><li><p>Design Systems Lead (Figma, design decisions, documentation)</p></li><li><p>Design System Engineer (code, CI/CD, tooling)</p></li><li><p>Product/Ops (roadmap, adoption, support)</p></li></ul><p>This made sense when each domain required full-time effort. Documentation alone could consume 30% of someone&#8217;s week.</p><p></p><p><strong>The 3-person model (2026):</strong></p><ul><li><p>Design Systems Lead (strategy, governance, adoption &#8211; 60% strategic, 40% hands-on)</p></li><li><p>Design Systems Engineer (components, CI/CD, AI tooling, MCP servers)</p></li><li><p>Design Engineer (Figma library, design-to-code, prototyping, documentation)</p></li></ul><p></p><p>Every team member needs these AI-era skills:</p><ul><li><p><strong>Prompt engineering basics</strong>: Writing effective prompts for consistent output</p></li><li><p><strong>AI orchestration</strong>: Knowing which tool to use for which task</p></li><li><p><strong>Quality control mindset</strong>: AI output requires review; knowing what to check</p></li><li><p><strong>MCP/API literacy</strong>: Understanding how to connect AI to your systems</p></li></ul><p></p><p>Traditional<strong> &#8594; now handled by: </strong></p><p>Documentation writing &#8594; <strong>AI-assisted, owned by whoever builds the component </strong></p><p>Support ticket responses &#8594; <strong>AI triage + templates, minimal human time</strong></p><p>Changelog maintenance &#8594;<strong> Automated from commits</strong></p><p>Usage analytics reports &#8594; <strong>Dashboards + MCP servers querying data</strong></p><p>Contribution process &#8594; <strong>Templated workflows, AI-assisted code review</strong></p><p></p><p><strong>The real question isn&#8217;t &#8220;how many people?&#8221; anymore. It&#8217;s &#8220;how many people doing WHAT?&#8221;</strong></p><p></p><p><strong>What a 3-person team can realistically achieve </strong>with AI augmentation in 2026:</p><ul><li><p>50-100 components maintained</p></li><li><p>Support for a few product teams</p></li><li><p>Bi-weekly release cadence</p></li><li><p>Comprehensive documentation (AI-assisted)</p></li><li><p>Basic design token automation</p></li><li><p>Visual regression testing</p></li><li><p>Accessibility compliance monitoring</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q0Ee!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q0Ee!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 424w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 848w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 1272w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!q0Ee!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png" width="1200" height="510.989010989011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:620,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:121912,&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://learn.thedesignsystem.guide/i/185401383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q0Ee!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 424w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 848w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 1272w, https://substackcdn.com/image/fetch/$s_!q0Ee!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dcf52c9-bd99-46c9-97da-90f75a0b711f_2880x1227.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The 10-person design system team (2026 edition)</h3><p>At 10 people, you&#8217;re running what&#8217;s essentially an internal product. The challenge shifts from &#8220;can we build it?&#8221; to &#8220;can we coordinate it?&#8221;</p><p>Most 10-person design system teams fail not because they lack talent. They fail because they lack clarity.</p><ul><li><p>Nobody knows who decides what</p></li><li><p>Design and engineering work in parallel silos</p></li><li><p>Governance becomes bureaucratic gatekeeping</p></li><li><p>AI tools are used inconsistently (or not at all)</p></li><li><p>No change log (or decisions log)</p><p></p></li></ul><p><strong>Here&#8217;s what the optimal 10-person team looks like in 2026:</strong></p><p><strong>Strategic Layer (3 people):</strong></p><ul><li><p>Director: Exec alignment, strategy, vision</p></li><li><p>Product Manager: Roadmap, metrics, prioritization</p></li><li><p>Adoption Lead: Evangelism, training, support relationships</p></li></ul><p><strong>Design Layer (2-3 people):</strong></p><ul><li><p>Lead Designer: Architecture, governance</p></li><li><p>Design Engineer: Figma + Code, prototyping</p></li><li><p>Visual Designer (optional): Multi-brand systems</p></li></ul><p><strong>Engineering Layer (3-4 people):</strong></p><ul><li><p>Engineering Manager: Architecture, code quality</p></li><li><p>Platform Engineer: AI infra, CI/CD, MCP servers</p></li><li><p>Frontend Engineers (x2): Components, features</p></li></ul><p><strong>Specialized (1-2 people):</strong></p><ul><li><p>Accessibility Specialist: Compliance, auditing, training</p></li><li><p>Developer Experience (optional): Docs, AI tooling, prompt libraries</p><p></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X3Tc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X3Tc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 424w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 848w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 1272w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!X3Tc!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png" width="1200" height="531.5934065934066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:645,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:118383,&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://learn.thedesignsystem.guide/i/185401383?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!X3Tc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 424w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 848w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 1272w, https://substackcdn.com/image/fetch/$s_!X3Tc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2fe2339-cadb-4b1f-a2ef-88b61a79152a_2880x1275.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The hiring signals that actually matter </h3><p>Don&#8217;t hire based on company size. Hire based on these signals:</p><ul><li><p>You&#8217;re spending more than 50% of time on support and maintenance</p></li><li><p>Adoption has stalled because you can&#8217;t do outreach</p></li><li><p>You have a backlog of 6+ months of component requests</p></li><li><p>Teams are building workarounds because they can&#8217;t wait for you</p></li><li><p>You&#8217;re burning out</p><p></p></li></ul><div><hr></div><h2>The skills that became MORE valuable</h2><p><strong>Own these:</strong></p><ul><li><p><strong>Strategic decisions</strong>: Which components to build next</p></li><li><p><strong>Design quality</strong>: Ensuring components solve real problems</p></li><li><p><strong>Relationship building</strong>: Getting teams to actually adopt the system</p></li><li><p><strong>Governance frameworks</strong>: Setting the rules (even if AI helps enforce them)</p></li><li><p><strong>Complex problem-solving</strong>: Edge cases, accessibility nuances, cross-platform considerations</p></li></ul><p><strong>Delegate to AI:</strong></p><ul><li><p>First drafts of documentation</p></li><li><p>Code scaffolding and boilerplate</p></li><li><p>Token validation and linting</p></li><li><p>Changelog and release notes</p></li><li><p>Support ticket triage and initial responses</p></li></ul><p><strong>Delegate to product teams (with good tooling):</strong></p><ul><li><p>Basic component usage</p></li><li><p>Bug reports with clear templates</p></li><li><p>Contribution of simple patterns</p></li></ul><p></p><p><strong>Roles that are becoming MORE important in 2026:</strong></p><p><strong>1. Adoption Lead</strong></p><p>AI can generate components. It can write documentation. It can even respond to support tickets.</p><p>What AI cannot do is convince a skeptical product team to use your system instead of their custom solution. It cannot navigate the politics of a reorg. It cannot sit in a room and understand why adoption stalled.</p><p>The companies winning at design systems in 2026 have someone dedicated to this. Not as a side responsibility. As the main job.</p><p><strong>2. Platform Engineer</strong></p><p>Someone needs to set up and maintain the AI infrastructure. MCP servers. Automation pipelines. The tooling that lets AI access your design system data.</p><p>Most teams underinvest here. They use AI tools but don&#8217;t customize them for their context. They get generic outputs because they provide generic inputs.</p><p><strong>3. Accessibility Specialist</strong></p><p>AI catches basic accessibility issues. It can run automated scans and flag obvious violations.</p><p>But accessibility at scale requires human expertise for edge cases, cultural considerations, and training teams to think accessibly from the start. This role became more important, not less.</p><p><strong>4. Developer Experience Engineer</strong></p><p>With AI-assisted development, the quality of your AI tooling setup directly impacts productivity. The prompts. The context. The MCP configurations.</p><p>This role didn&#8217;t exist in 2023. In 2026, it&#8217;s a competitive advantage.</p><p></p><p><strong>Roles that shrunk or merged:</strong></p><p><strong>1. Technical Writer (as a standalone role)</strong></p><p>Documentation is now AI-assisted and owned by builders, not a separate function. The writer role evolved into &#8220;documentation architect&#8221; &#8211; someone who designs the structure and reviews AI output.</p><p><strong>2. Junior Developers</strong></p><p>AI handles much of what junior devs used to do. Copy-paste patterns. Boilerplate scaffolding. Basic component implementation.</p><p>Fewer junior roles, but those who remain need AI collaboration skills. The junior dev of 2026 is more like the mid-level dev of 2020.</p><p><strong>3. Pure Visual Designers</strong></p><p>Design engineers who can implement are more valuable than designers who only produce Figma files.</p><div><hr></div><h2>The 2026 Formula</h2><p><strong>Fewer people + Higher seniority + AI augmentation = Same or better output</strong></p><p>A 1-person team with AI beats a 1-person team without.<br>A 3-person team with clear roles beats a 5-person team with unclear ownership.<br>A 10-person team with defined accountability beats a 15-person team playing politics.</p><p></p><p><strong>Your design system team structure isn&#8217;t about hitting a magic number. It&#8217;s about:</strong></p><ol><li><p>Understanding what AI changed</p></li><li><p>Investing in the right roles </p></li><li><p>Matching structure to stage </p></li><li><p>Watching the signals </p><p></p></li></ol><p>Start by auditing your current team against these models. What&#8217;s your biggest gap?</p><p>That&#8217;s where you either hire or leverage AI.</p><p>I&#8217;ve gathered more articles below, if you want to dig in to numbers or experiences from other companies.</p><p></p><p>Stay tuned and enjoy the process,</p><p>Romina </p><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Into Design Systems&quot;,&quot;id&quot;:116470739,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e518e3-7e50-49ed-9202-81959be5e861_256x256.jpeg&quot;,&quot;uuid&quot;:&quot;538e222a-80bb-4cf8-a83c-ac2f95775c76&quot;}" data-component-name="MentionToDOM"></span> Hackathon</p><p><strong>February 6-8 2026 - Online</strong></p><p>I am part of the jury and will also help you to hack faster ;) See you there. &#128522;<br><br><strong>&#128279; <a href="https://www.intodesignsystems.com/hackathon">Link</a></strong></p><div><hr></div><p></p><ul><li><p><a href="https://www.builder.io/blog/best-ai-tools-2026">84% of developers were using or planning to use AI tools in 2025</a></p></li><li><p><a href="https://www.secondtalent.com/resources/github-copilot-statistics/">GitHub Copilot now generates 46% of all code written by active users</a></p></li><li><p><a href="https://www.linkedin.com/pulse/design-2025-navigating-ai-revolution-redefining-our-role-phillip-pqzoe/">Design in 2025: Navigating the AI Revolution and Redefining Our Role</a></p></li><li><p><a href="https://www.aboutchromebooks.com/github-copilot-statistics/">90% of Fortune 100 companies utilize GitHub Copilot</a></p></li><li><p><a href="https://www.secondtalent.com/resources/github-copilot-statistics/">Developers complete tasks 55% faster with GitHub Copilot</a></p></li><li><p><a href="https://visualstudiomagazine.com/articles/2024/11/22/article_0github-copilot-research-claims-code-quality-gains-in-addition-to-productivity.aspx">Average time to open a pull request dropped from 9.6 days to 2.4 days</a> </p></li><li><p><a href="https://uxdesign.cc/the-death-of-design-expertise-how-ai-is-reshaping-creative-industries-forever-3aeb96f3edcb">The death of design expertise? How AI is reshaping creative industries forever</a></p></li><li><p><a href="https://zeroheight.com/blog/design-systems-report-2025-an-overview/">Design Systems Report 2025 - An overview</a></p></li><li><p><a href="https://thom.eu/resources/article/top-5-trends-for-2025-how-ai-change-and-employee-experience-are-shaping-organizational-design/">Top 5 Trends for 2025: How AI, Change, and Employee Experience Are Shaping Organizational Design</a></p></li><li><p><a href="https://www.digitalocean.com/resources/articles/github-copilot-vs-cursor">Cursor study showed 39% increase in merged pull requests</a></p></li><li><p><a href="https://aijourn.com/your-dev-team-structure-is-already-outdated-how-ai-code-gen-really-changes-hiring-roles-in-2025/">Gartner estimates 80% of engineers will need to reskill by 2027</a></p></li><li><p><a href="https://technext.it/ai-team-structure/">&#8220;Hiring someone who can see the big picture and work well with AI reduces the need for large, specialized teams&#8221;</a></p><p></p></li></ul><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3></h3><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Introducing Taste 1.0: A Model for Designers]]></title><description><![CDATA[Here's how to use it]]></description><link>https://learn.thedesignsystem.guide/p/introducing-taste-10-a-model-for</link><guid isPermaLink="false">https://learn.thedesignsystem.guide/p/introducing-taste-10-a-model-for</guid><dc:creator><![CDATA[Romina Kavcic]]></dc:creator><pubDate>Fri, 16 Jan 2026 11:28:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lix1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: <a href="https://thedesignsystem.guide/design-tokens-course">Design Tokens Mastery Course</a> / <a href="https://www.youtube.com/@designsystemguide">YouTube</a> / <a href="https://www.linkedin.com/in/rominakavcic/">My Linkedin</a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lix1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lix1!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lix1!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7233587,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lix1!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 424w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 848w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 1272w, https://substackcdn.com/image/fetch/$s_!Lix1!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ff93c11-02b2-49db-a88b-9be7809d5963_1456x970.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today I&#8217;m releasing Taste 1.0, a new model specifically designed for design system work.</p><p>Key capabilities:</p><ul><li><p>Generates components that match your system&#8217;s conventions</p></li><li><p>Knows when to use <code>ghost</code> vs <code>secondary</code> vs <code>tertiary</code></p></li><li><p>Understands your spacing scale, your naming patterns, your anti-patterns</p></li><li><p>Ships accessibility by default</p></li><li><p>Never invents a new variant when an existing one works</p></li></ul><p></p><p>Availability: today. </p><p>The model is a folder of markdown files. &#128579;</p><p></p><p>I knoooow. You were hoping for something with 400 billion parameters and a clever name. But here is the thing:</p><p>You ask AI to generate a component. It ships something that looks fine. Then you paste it into your product, and it sticks out. Wrong spacing. Wrong naming. Wrong defaults. Wrong &#8220;feel&#8221;.</p><p>And you think: &#8220;I need a better model.&#8221;</p><p>You probably do not.</p><p>You need a &#8220;<strong>taste layer,</strong>&#8221; or in other words, <strong>an opinionated, structured set of guidelines.</strong> The best model in the world does not know what &#8220;good or good looking&#8221; means at your company. It does not know that you rejected <code>outline</code> buttons in 2025. It does not know that your spacing scale is 4px-based, not 8px. It does not know that <code>color.text.muted</code> it is for helper text, not placeholders.</p><p>No model knows this. No model will ever know this.</p><p>Unless you tell it.</p><p>That is what your set of markdown files can be. Your judgment, decisions, and taste, saved as context.</p><div><hr></div><h2>Two signals that this is where we are heading</h2><p>First, Gartner predicts that by 2027, organizations will use small, task-specific AI models <strong>3x more</strong> than general-purpose LLMs (<a href="https://www.gartner.com/en/newsroom/press-releases/2025-04-09-gartner-predicts-by-2027-organizations-will-use-small-task-specific-ai-models-three-times-more-than-general-purpose-large-language-models?utm_source=chatgpt.com">Gartner press release</a>).</p><p>However, we already moved from &#8220;<strong>pick a smart model</strong>&#8221; to &#8220;<strong>build a smart system</strong>&#8221;.  And please don&#8217;t get me wrong, which model you choose still affects what you get in the end. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2UvS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2UvS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 424w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 848w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 1272w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!2UvS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png" width="946" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:946,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:91729,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.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_!2UvS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 424w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 848w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 1272w, https://substackcdn.com/image/fetch/$s_!2UvS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2399fe53-e687-4c37-8eda-095dda8e6b37_946x443.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Model system vs model taste</h2><p>Here is the simplest way I can explain it:</p><ul><li><p><strong>Model system</strong>: the base model&#8217;s general capability. It can write, code, reason, and remix patterns. (Claude, GPT, Gemini, Llama, etc.)</p></li><li><p><strong>Model taste</strong>: your organization&#8217;s judgment layer. It defines what &#8220;good&#8221; means here. (Your markdown files: ds-core.md, ds-components.md, etc.)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HTlS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HTlS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 424w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 848w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 1272w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!HTlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png" width="1456" height="665" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:665,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88977,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.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_!HTlS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 424w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 848w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 1272w, https://substackcdn.com/image/fetch/$s_!HTlS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3252522d-28fe-45ed-9b5c-5d0d07947acb_2880x1316.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Your taste lives in the files you maintain:</p><ul><li><p><code>ds-core.md</code> says &#8220;use semantic tokens, never raw hex&#8221;</p></li><li><p><code>ds-components.md</code> says &#8220;max 4 variants per component.&#8221;</p></li><li><p><code>ds-tokens.md</code> says &#8220;we rejected 8px spacing in favor of 4px for density&#8221;</p></li></ul><p>These files shape what gets produced and what gets rejected. They act like a conditioning layer on top of the base model.</p><p></p><h2>I know what you are thinking</h2><p>&#8220;Okay, but is this just documentation with a new name?&#8221;</p><p>Not really. <strong>These are opinionated, specific, structured guidelines for building user interfaces. </strong></p><p>But here is what changes when you treat it like a system component:</p><ul><li><p>You version it.</p></li><li><p>You review it.</p></li><li><p>You prune it.</p></li><li><p>You enforce it.</p></li></ul><p>You write constraints so people and agents can ship consistently.</p><p></p><h2>Routing is the shift</h2><p>You do not ask every model to solve everything.</p><p>You first figure out what kind of problem this is. Then you route it to the right specialist.</p><p>Agent workflows need three things:</p><ol><li><p><strong>Routing</strong>: decide which specialist should answer.</p></li><li><p><strong>Memory</strong>: keep decisions and context over time.</p></li><li><p><strong>Specialization</strong>: use narrow experts instead of one generalist.</p></li></ol><p></p><p>It is all about system design. Ask yourself, &#8220;How do we design an intelligent system made of many parts?&#8221;</p><p></p><p>The research backs this up. A 2025 study on instruction-following capacity (<a href="https://arxiv.org/html/2507.11538v1">IFScale benchmark</a>) found that even the best frontier models <em>only achieve 68% accuracy when given 500 instructions.</em> Most models show one of three degradation patterns:</p><ul><li><p><strong>Threshold decay</strong>: near-perfect until ~150 instructions, then sharp decline</p></li><li><p><strong>Linear decay</strong>: steady, predictable drop across the spectrum</p></li><li><p><strong>Exponential decay</strong>: rapid early degradation, then floors at 7-15% accuracy</p></li></ul><p>The takeaway: do not stuff everything into one prompt. Route to specialists with focused context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DrtP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DrtP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 424w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 848w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 1272w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!DrtP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png" width="1456" height="476" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:476,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97381,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.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_!DrtP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 424w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 848w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 1272w, https://substackcdn.com/image/fetch/$s_!DrtP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd1a6fac-c800-4af8-96ae-2884b4805609_2880x941.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Knowledge graph as the glue</h2><p>When you split work across multiple specialists, you need something that keeps them aligned.  That is the knowledge graph.</p><p>A knowledge graph is a structured representation of concepts and their relationships.</p><p>Think of it like this: instead of a flat list of definitions, you have<strong> a map.</strong> The map shows what things are, how they connect, and what rules govern their relationships.</p><p>In technical terms: nodes (<em>things</em>) plus edges (<em>relationships</em>) plus properties (attributes).</p><p>In practical terms: a shared vocabulary that everyone and everything can reference.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yXqn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yXqn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 424w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 848w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!yXqn!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png" width="1200" height="623.0769230769231" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:106827,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yXqn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 424w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 848w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!yXqn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39881387-2261-45e7-bbc0-fe219fc4c250_3389x1760.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>What does this mean for design systems?</h3><p>For design systems, the knowledge graph answers questions like:</p><ul><li><p>What is a &#8220;Button&#8221;? What variants exist? What tokens does it use?</p></li><li><p>What is <code>color.text.muted</code>? When do you use it? What is it not for?</p></li><li><p>What is a &#8220;Card&#8221;? How does it relate to &#8220;Surface&#8221;? Can they nest?</p></li><li><p>What counts as a &#8220;pattern&#8221; vs a &#8220;component&#8221; vs a &#8220;primitive&#8221;?</p></li></ul><p>Without this, you get drift. One agent generates a <code>GhostButton</code>. Another generates a <code>Button</code> with <code>variant="ghost"</code>. A third generates a <code>TextButton</code>. All three think they did the right thing.</p><p>With a shared knowledge graph, every specialist checks the same source before generating. They use the same names, the same relationships, the same constraints.</p><p></p><h3>How is this different from regular documentation?</h3><p>Regular documentation describes things. A knowledge graph connects things.</p><p>For example: </p><pre><code><strong>&#8220;Use muted text for secondary content&#8221; </strong>&#8594; color.text.muted &#8594; applies to &#8594; helper text, timestamps, captions</code></pre><p>The key difference: <strong>a knowledge graph makes relationships explicit. </strong>An agent can traverse it. &#8220;What tokens does Button use?&#8221; &#8220;What components can go inside Card?&#8221; &#8220;What is the difference between muted and secondary?&#8221;</p><p></p><p><strong>What should you put in your design system knowledge graph?</strong></p><p>Design systems are evolving into intelligent context-aware systems. </p><p>Start with the foundation layers, then build toward the future.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CsgP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CsgP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 424w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 848w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!CsgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png" width="1456" height="890" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:890,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:166633,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.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_!CsgP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 424w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 848w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!CsgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193d31c-6464-4a75-8bee-58e352a61b74_2880x1760.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Foundation layers (what you need today)</strong></p><p><strong>1. Primitives</strong></p><p>The lowest-level building blocks.</p><ul><li><p>Colors (and their semantic mappings)</p></li><li><p>Spacing scale (and when to use each step)</p></li><li><p>Typography scale (and what each level is for)</p></li><li><p>Radius, shadow, motion tokens</p></li></ul><p>Example:</p><pre><code>- Always use Tailwind CSS defaults
- Never use primitive design tokens on components</code></pre><p><strong>2. Components</strong></p><p>The UI building blocks.</p><ul><li><p>Name, variants, states</p></li><li><p>Which tokens each component uses</p></li><li><p>Composition rules (what can go inside, what cannot)</p></li><li><p>Accessibility requirements</p></li></ul><pre><code><code>- Check existing components before creating new ones
- Never hardcode colors
- Always check Storybook (link/token)
- Always check Figma UI kit (link) via Figma MCP
- Always check Gitlab (link)
- and so on ... </code></code></pre><p><strong>3. Patterns</strong></p><p>Combinations of components that solve recurring problems.</p><ul><li><p>Form layouts</p></li><li><p>Navigation patterns</p></li><li><p>Data display patterns</p></li><li><p>Empty states, loading states, error states</p></li></ul><pre><code><code>- Always include one call to action
- Follow these rules for combining components (XY)</code></code></pre><p><strong>4. Decisions</strong></p><p>The &#8220;why&#8221; behind everything.</p><ul><li><p>Why we chose X over Y</p></li><li><p>What we tried and rejected</p></li><li><p>When to break the rules</p></li></ul><p><strong>5. Taxonomy</strong></p><p>The classification system that makes routing work.</p><ul><li><p>design vs engineering</p></li><li><p>tokens vs components vs patterns</p></li><li><p>new work vs existing pattern</p></li></ul><div><hr></div><p><strong>Future layers </strong></p><p>These are the layers that turn a design system into an experience system.</p><p><strong>6. Context engine</strong></p><p>How the system adapts to who is using it and what they need.</p><ul><li><p>Intent detection rules: what signals indicate the user wants X vs Y?</p></li><li><p>Personalization mappings: user type &#8594; defaults, density, complexity</p></li><li><p>Platform adaptation: web vs mobile vs embedded vs voice</p></li><li><p>Locale rules: what changes per region, language, or market?</p></li><li><p>Brand adaptation: how does the same component express different brands?</p></li></ul><p>Example entry:</p><pre><code><code>Intent: user wants to delete something

- Signals: clicked delete icon, selected items + pressed backspace, said "remove"
- Response pattern: show confirmation dialog (AlertDialog, not Dialog)
- Modality options: visual confirmation, haptic feedback on mobile, voice confirmation
- Escalation: if bulk delete &gt; 10 items, require explicit confirmation
</code></code></pre><p><strong>7. Interaction blueprints</strong></p><p>Agentic flows and adaptive behaviors.</p><ul><li><p>Flows that shift based on user behavior (not just screen size)</p></li><li><p>Proactive assistance patterns: when does the system offer help?</p></li><li><p>Fallback rules: what happens when intent is unclear?</p></li><li><p>Handoff patterns: when does the system escalate to a human?</p></li></ul><p>Example entry:</p><pre><code><code>Flow: onboarding

- Adaptive rule: if user skips 2+ steps, offer "skip to dashboard" option
- Proactive assist: if user pauses &gt; 10 seconds on a field, show tooltip
- Modality switch: if voice detected, offer voice-guided onboarding
</code></code></pre><p><strong>8. Multimodality mappings</strong></p><p>One intent, expressed in the best way for the context.</p><ul><li><p>Touch, visual, audio, voice, gesture</p></li><li><p>Haptic, text, ambient, motion</p></li><li><p>Which modality is primary vs fallback for each intent?</p></li><li><p>How do modalities combine?</p></li></ul><p>Example entry:</p><pre><code><code>### Action: confirm destructive action

- Visual: red button + confirmation dialog
- Voice: "Are you sure you want to delete [item]?"
- Haptic: warning vibration pattern before confirm
- Fallback order: visual &#8594; voice &#8594; haptic
</code></code></pre><p><strong>9. Governance rules</strong></p><p>How the system stays aligned at scale.</p><ul><li><p>Which decisions require human approval?</p></li><li><p>Which outputs get auto-validated vs flagged for review?</p></li><li><p>What are the hard constraints that never bend?</p></li><li><p>How do you handle conflicts between agents?</p><p></p></li></ul><h3>You do not need fancy tooling to start</h3><p>Start with markdown that acts like one:</p><pre><code><code>Design Specs:

Colors:
- Background: #3B82F6 (primary), #FFFFFF (secondary)
- Text: #FFFFFF (primary buttons), #1F2937 (secondary buttons)
- Border: #E5E7EB (1px)
- Focus ring: #3B82F6 with 2px offset

Typography:
- Font family: Inter
- Font size: 14px (small), 16px (medium), 18px (large)
- Font weight: 500 (medium), 600 (semibold for primary)
- Line height: 1.5

Spacing:
- Padding: 8px 16px (small), 12px 24px (medium), 16px 32px (large)
- Gap between icon and text: 8px
- Minimum height: 32px (small), 40px (medium), 48px (large)

Visual effects:
- Border radius: 6px
- Box shadow: 0 1px 2px rgba(0,0,0,0.05)
- Hover: darken by 10%, lift shadow to 0 2px 4px rgba(0,0,0,0.1)
- Transition: all 150ms ease</code></code></pre><p>This is not as powerful as a real graph database. But it gives you 80% of the benefit: shared definitions, explicit relationships, and a single source that agents can reference.</p><p></p><h3>Why this matters for multi-agent systems</h3><p>When you have a single model doing everything, you can embed context into a single prompt.</p><p>When you have many specialists, that breaks down. Each specialist sees a slice. If they do not share definitions, their outputs conflict.</p><p>The knowledge graph is the glue:</p><ul><li><p>All specialists reference the same definitions</p></li><li><p>Outputs stay semantically aligned</p></li><li><p>The system scales without drift</p></li></ul><p>Without it, small models drift. Outputs contradict each other. Your system falls apart.</p><p>With it, models stay modular and coherent.</p><p></p><h3>Binary tree routing: a mental model that makes this click</h3><p>Think of routing like a decision tree. Each step narrows the problem.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ntSs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ntSs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 424w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 848w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!ntSs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png" width="1456" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70800,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.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_!ntSs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 424w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 848w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!ntSs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fb8613d-7205-4cba-9e63-2a6e76ffebad_2880x1214.png 1456w" sizes="auto, 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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Every decision reduces complexity until you hit the right specialist.</p><p>This is why small models work. They do not need to understand everything. They only need to understand their slice.</p><p></p><h3>So, what I mean by &#8220;markdown is an additional model&#8221;</h3><p>I mean, it behaves like a conditioning layer:</p><ul><li><p><strong>It constrains behavior.</strong> It tells the system what &#8220;good&#8221; looks like.</p></li><li><p><strong>It compresses decisions.</strong> It prevents re-litigating the same debates.</p></li><li><p><strong>It generalizes across tasks.</strong> UI, copy, naming, motion, tokens, component APIs.</p></li><li><p><strong>It stays cheap to update.</strong> You edit a file. You do not retrain a model.</p></li></ul><p></p><div><hr></div><h2>The taste kit: a folder of markdown files</h2><p>Here is the key insight: if you are heading toward multiple specialists doing small things, your context files should mirror that.</p><p>Do not put everything in one giant <code>CLAUDE.md</code>. </p><p>Create multiple markdown files, each specialized for a specific design system task. When you route a task to a specialist, you give it only the context it needs.</p><h3>The folder structure</h3><pre><code>.cursor/
&#9500;&#9472;&#9472; ds-core.md           # Shared foundations (tokens, principles, stack)
&#9500;&#9472;&#9472; ds-components.md     # Component creation and modification
&#9500;&#9472;&#9472; ds-tokens.md         # Token decisions and naming
&#9500;&#9472;&#9472; ds-prototyping.md    # Rapid prototyping rules
&#9500;&#9472;&#9472; ds-ux-review.md      # UX review checklist and criteria
&#9500;&#9472;&#9472; ds-documentation.md  # Writing component docs
&#9500;&#9472;&#9472; ds-migration.md      # Migrating legacy patterns
&#9492;&#9472;&#9472; ds-accessibility.md  # A11y requirements and testing</code></pre><p>Each file is specific. Each file gets loaded only when relevant.</p><h4>File 1: <code>ds-core.md</code> (shared foundations)</h4><p>This is the only file every specialist sees. Keep it short.</p><pre><code><code># Design system core

## Stack
- React + TypeScript
- Tailwind CSS with design tokens
- Radix primitives for accessible components

## Principles (in priority order)

## Token rules

## Naming
</code></code></pre><p></p><h4>File 2: <code>ds-components.md</code> (creating and modifying components)</h4><p>Load this when the task is &#8220;create a component&#8221; or &#8220;add a variant&#8221;.</p><pre><code><code># Component creation rules

## Before creating a new component

## Component structure

## Variant rules

## Composition

## Anti-patterns
</code></code></pre><p></p><h4>File 3: <code>ds-tokens.md</code> (token decisions)</h4><p>Load this when the task involves tokens, theming, or color decisions.</p><pre><code><code># Token rules

## Naming convention

Examples:

## When to create a new token

## When NOT to create a token

## Token relationships

## Decisions log
</code></code></pre><p></p><h4>File 4: <code>ds-prototyping.md</code> (rapid prototyping)</h4><p>Load this when speed matters more than polish.</p><pre><code><code># Prototyping rules

## Goal

## What to skip

## What to keep

## Prototype checklist

## Output format
</code></code></pre><p></p><h4>File 5: <code>ds-ux-review.md</code> </h4><p>You can specify how to create automated screenshots, review work, review colors, etc.</p><pre><code><code># UX review criteria

## Consistency check
- [ ] Uses existing components (not custom implementations)
- [ ] Uses semantic tokens (not hardcoded values)
- [ ] Follows established patterns (not inventing new ones)
- [ ] Matches existing density and spacing rhythm

## Interaction check
- [ ] Interactive elements have visible focus states
- [ ] Destructive actions use confirmation dialogs
- [ ] Loading states use skeleton patterns
- [ ] Error messages appear near the action

## Accessibility check
- [ ] Color contrast meets WCAG AA (4.5:1 for text)
- [ ] Interactive elements are keyboard accessible
- [ ] Icon-only buttons have aria-label
- [ ] Form inputs have visible labels

## Content check


## Red flags (block the PR)
</code></code></pre><p></p><h4>File 6: <code>ds-documentation.md</code> (writing component docs)</h4><p>Load this when documenting components.</p><pre><code><code># Documentation rules

## Every component needs

## Writing style

## Props table format

## Do not include
</code></code></pre><p></p><h2>The workflow: propose, route, generate, validate</h2><p>If you want this to work in real teams, you need a repeatable workflow.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l8ZX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 424w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 848w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 1272w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!l8ZX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png" width="1456" height="261" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:261,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:34462,&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://learn.thedesignsystem.guide/i/184539725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.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_!l8ZX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 424w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 848w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 1272w, https://substackcdn.com/image/fetch/$s_!l8ZX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb53938-fa63-4dea-ab6a-8b77894078da_2880x516.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p></p><p><strong>Step 1: Propose the intent</strong></p><p>Write a short intent plus constraints in the PR description. One paragraph max.</p><p><strong>Step 2: Route it</strong></p><p>Decide which specialist should answer.</p><p>Start with a simple taxonomy:</p><ul><li><p>design / engineering</p></li><li><p>tokens / components / content</p></li><li><p>new pattern / existing pattern</p></li></ul><p><strong>Step 3: Generate with constraints</strong></p><p>Give the specialist the minimum context it needs:</p><ul><li><p><code>ds-core.md</code> (always)</p></li><li><p>the task-specific file (<code>ds-components.md</code>, <code>ds-ux-review.md</code>, etc.)</p></li><li><p>one canonical example if relevant</p></li></ul><p><strong>Step 4: Validate</strong></p><p>Check the output against your rules:</p><ul><li><p>Does it use the right tokens for the right reason?</p></li><li><p>Did it introduce a new variant?</p></li><li><p>Does it follow your naming and composition patterns?</p></li><li><p>Does it ship accessibility by default?</p></li></ul><p><strong>Step 5: Capture the decision</strong></p><p>If you accept a new pattern, write down why.</p><p>If you reject it, write down the rejection rule.</p><p>This is how taste compounds instead of resetting every quarter.</p><p></p><h2>Where to start</h2><p>Start with two files and one task.</p><ul><li><p>Understand what a consistent, accessible, coherent UI looks like</p></li><li><p>Know when to say NO to a new variant</p></li><li><p>Capture decisions so taste compounds</p></li><li><p>Evaluating output against real standards, not just &#8220;does it work?&#8221;</p></li></ul><p></p><p>Here is a 60-minute plan:</p><ol><li><p><strong>Create </strong><code>ds-core.md</code> with your stack, principles, and token rules. Keep it under 30 lines.</p></li><li><p><strong>Pick your most common task.</strong> Component creation? UX review? Prototyping?</p></li><li><p><strong>Create the matching task file.</strong> Start with <code>ds-components.md</code> or <code>ds-ux-review.md</code>.</p></li><li><p><strong>Run one generation</strong> using only those two files as context.</p></li><li><p><strong>Review the output.</strong> What did it get right? What rule was missing?</p></li></ol><p>Then iterate. Add one file per week as new tasks come up. </p><p></p><p><strong>Pro tip:</strong> If you use Claude Code, start with Plan Mode. It reads your codebase and markdown files before generating anything. This is exactly the &#8220;route first, then execute&#8221; pattern. Let it analyze your context files, propose an approach, then generate. You will catch misunderstandings before they become wasted code.</p><div><hr></div><h2>In short</h2><p>You do not win in 2026 by picking the smartest model. You win by designing the system around it: routing, memory, specialization, and a shared source of truth.</p><p>Markdown is one of the fastest ways to build a taste layer that scales.</p><p>You got this.</p><p>Enjoy, Romina &#128588;</p><p></p><p><strong>Related read</strong></p><p>&#128279; <a href="https://www.gartner.com/en/newsroom/press-releases/2025-04-09-gartner-predicts-by-2027-organizations-will-use-small-task-specific-ai-models-three-times-more-than-general-purpose-large-language-models?utm_source=chatgpt.com">Gartner predicts by 2027, organizations will use small task-specific AI models three times more than general-purpose large language models</a> - Gartner press release on the shift toward smaller, task-specific models.</p><p>&#128279; <a href="https://addyosmani.com/blog/good-spec/">How to Write Good AI Agent Specs</a> by Addy Osmani - Practical guide on structuring specs for AI agents, with emphasis on modular context and clear boundaries.</p><p>&#128279; <a href="https://arxiv.org/html/2507.11538v1">How Many Instructions Can LLMs Follow at Once?</a> - Research showing instruction-following degrades significantly as instruction count increases.</p><p></p><p><em>&#8212; If you enjoyed this post, please tap the Like button below &#128155; This helps me see what you want to read. Thank you.</em></p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learn.thedesignsystem.guide/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want more actionable insights like this? Subscribe &amp; never miss a post! &#10084;&#65039;</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>&#128142; Community Gems</strong></h3><p></p><p><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Into Design Systems&quot;,&quot;id&quot;:116470739,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75e518e3-7e50-49ed-9202-81959be5e861_256x256.jpeg&quot;,&quot;uuid&quot;:&quot;538e222a-80bb-4cf8-a83c-ac2f95775c76&quot;}" data-component-name="MentionToDOM"></span> Hackathon</p><p><strong>February 6-8 2026 - Online</strong></p><p>I am part of the jury and will also help you to hack faster ;) See you there. &#128522;<br><br><strong>&#128279; <a href="https://www.intodesignsystems.com/hackathon">Link</a></strong></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b552e4d6-f367-4319-9309-e47ba1dbd1b0&quot;,&quot;caption&quot;:&quot;&#128075; Get weekly insights, tools, and templates to help you build and scale design systems. More: Design Tokens Mastery Course / YouTube / My Linkedin&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How I'd build a design system if I started over in 2026&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:1252525,&quot;name&quot;:&quot;Romina Kavcic&quot;,&quot;bio&quot;:&quot;Product + Design Systems + AI&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20421bd-ef89-45a7-83bc-74b615d84be6_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-09T11:59:19.321Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!UYfg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F726c7543-bb4a-407f-9f14-4d1c9e81c1f1_1456x970.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learn.thedesignsystem.guide/p/how-id-build-a-design-system-if-i&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:183904911,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:53,&quot;comment_count&quot;:1,&quot;publication_id&quot;:240057,&quot;publication_name&quot;:&quot;The Design System Guide&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Iz0L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6d070f0-1ad0-4b70-afd1-f43f4c22f606_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p>]]></content:encoded></item></channel></rss>