<?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[Rex & Duckie]]></title><description><![CDATA[Rex & Duckie]]></description><link>https://rexandduckie.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!uctQ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff16bbcf9-7292-44a2-a269-528b2ab1fa10_1254x1254.png</url><title>Rex &amp; Duckie</title><link>https://rexandduckie.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 08 May 2026 02:50:15 GMT</lastBuildDate><atom:link href="https://rexandduckie.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Rex & Duckie]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[rexandduckie@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[rexandduckie@substack.com]]></itunes:email><itunes:name><![CDATA[Rex & Duckie]]></itunes:name></itunes:owner><itunes:author><![CDATA[Rex & Duckie]]></itunes:author><googleplay:owner><![CDATA[rexandduckie@substack.com]]></googleplay:owner><googleplay:email><![CDATA[rexandduckie@substack.com]]></googleplay:email><googleplay:author><![CDATA[Rex & Duckie]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Stop Chasing Design Tools. Start Building a Design Harness]]></title><description><![CDATA[How design teams can turn scattered AI use into a practice that survives tool releases, model updates, and org changes.]]></description><link>https://rexandduckie.substack.com/p/stop-chasing-design-tools-start-building</link><guid isPermaLink="false">https://rexandduckie.substack.com/p/stop-chasing-design-tools-start-building</guid><dc:creator><![CDATA[Rex & Duckie]]></dc:creator><pubDate>Mon, 27 Apr 2026 02:42:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9658cd9b-ecee-4c9b-89ce-ed42e80b61a0_1731x909.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EihB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EihB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!EihB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!EihB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!EihB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EihB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png" width="1456" height="765" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1579477,&quot;alt&quot;:&quot;Two-panel banner. Top: a cartoon man in a yellow puffer jacket and glasses turns away with a dismissive raised hand, next to text \&quot;Stop Chasing Design Tools.\&quot; Bottom: the same man smiles and points forward in approval, next to text \&quot;Start Building a Design Harness.\&quot;&quot;,&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two-panel banner. Top: a cartoon man in a yellow puffer jacket and glasses turns away with a dismissive raised hand, next to text &quot;Stop Chasing Design Tools.&quot; Bottom: the same man smiles and points forward in approval, next to text &quot;Start Building a Design Harness.&quot;" title="Two-panel banner. Top: a cartoon man in a yellow puffer jacket and glasses turns away with a dismissive raised hand, next to text &quot;Stop Chasing Design Tools.&quot; Bottom: the same man smiles and points forward in approval, next to text &quot;Start Building a Design Harness.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!EihB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!EihB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!EihB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!EihB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a1e179-22b9-4908-9c73-5861092df4ca_1731x909.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Key Takeaways</h2><ul><li><p>AI keeps lowering the floor for design output. Average work is becoming easier to produce, and easier to recognize.</p></li><li><p>Design teams need a workflow that lifts generated work toward their full potential, and thrives in the tool churn.</p></li><li><p>A design harness gives teams a practical layer they can own: persistent context, reusable skills, orchestrated workflows, clear evaluation, and compounding knowledge.</p></li></ul><h2>TL;DR</h2><p>A mental model gaining traction in agent design is:</p><blockquote><p><strong><a href="https://www.langchain.com/blog/the-anatomy-of-an-agent-harness#filesystems-for-durable-storage-and-context-management">Agent = Model + Harness</a></strong></p></blockquote><p>The model provides the core capability. The harness makes that capability usable in practice.</p><p>For design teams, that idea translates like this:</p><blockquote><p><strong>Design Harness = Context + Skills + Orchestration + Evaluations + Compounding</strong></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hs-V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hs-V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hs-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png" width="728" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:1615196,&quot;alt&quot;:&quot;Cartoon designer climbs a ladder against a five-tiered stack of numbered blocks labeled Context Engineering, Skill Curation, Workflow Orchestration, Evaluation Design, Knowledge Compounding. A lightbulb glows above as the team's ceiling.&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="Cartoon designer climbs a ladder against a five-tiered stack of numbered blocks labeled Context Engineering, Skill Curation, Workflow Orchestration, Evaluation Design, Knowledge Compounding. A lightbulb glows above as the team's ceiling." title="Cartoon designer climbs a ladder against a five-tiered stack of numbered blocks labeled Context Engineering, Skill Curation, Workflow Orchestration, Evaluation Design, Knowledge Compounding. A lightbulb glows above as the team's ceiling." srcset="https://substackcdn.com/image/fetch/$s_!hs-V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!hs-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b07c250-e562-44e3-8983-1cfe684fd435_1448x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Build those layers in a repo you own, and AI stops behaving like a pile of isolated sessions. Context carries forward, skills become reusable, experimentation gets safer, and team learning survives tool changes.</p><p>For a concrete place to begin, <a href="https://github.com/BilLogic/harness-designing-plugin">harness-designing-plugin</a> gives you a set of tools to get started.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://github.com/BilLogic/harness-designing-plugin&quot;,&quot;text&quot;:&quot;Try Harness-Designing-Plugin&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://github.com/BilLogic/harness-designing-plugin"><span>Try Harness-Designing-Plugin</span></a></p><p></p><h2>Like a rolling stone</h2><p>Every design team I know is trying to answer the same question:</p><blockquote><p><em>How should AI actually fit into the design process?</em></p></blockquote><p>The first instinct is to follow the tools.</p><p><a href="https://paper.design/">Paper</a> shows up as a Figma alternative. Then <a href="https://blog.google/innovation-and-ai/models-and-research/google-labs/stitch-ai-ui-design/">Stitch</a> pushes the conversation toward vibe designing and engineering <code>design.md</code> documents. Soon after, <a href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design</a> reframes the pitch around grounding generation more directly in a team&#8217;s design system. Then <a href="https://openai.com/index/introducing-chatgpt-images-2-0/">OpenAI&#8217;s latest image release</a> stretches it further into brand kits and visual systems.</p><p>Each release points in the same direction: the floor keeps lowering. Average, templated design work is getting easier to produce, and easier to recognize. That helps people starting from scratch, exploring new ideas, or moving quickly on their own. But teams with existing products, assets, systems, and higher standards need more than another way to generate average work. They need a way to make generated work climb toward their specific standards, taste, and ceiling.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a6S4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a6S4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a6S4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png" width="728" height="546" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:2493086,&quot;alt&quot;:&quot;Three-panel comic. A smiling woman labeled \&quot;New tool that just launched\&quot; stands left. A worried designer in the middle looks back at her. A panicked figure on the right is labeled \&quot;The workflow you were building.\&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="Three-panel comic. A smiling woman labeled &quot;New tool that just launched&quot; stands left. A worried designer in the middle looks back at her. A panicked figure on the right is labeled &quot;The workflow you were building.&quot;" title="Three-panel comic. A smiling woman labeled &quot;New tool that just launched&quot; stands left. A worried designer in the middle looks back at her. A panicked figure on the right is labeled &quot;The workflow you were building.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!a6S4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!a6S4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479cea00-b746-404a-9f79-f85753d8811b_1448x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And that&#8217;s exactly where the friction starts.</p><h2>Why this starts to feel Sisyphean</h2><p>Every new tool comes with the same cost: rebuilding the working conditions around it before it becomes useful.</p><p>That pattern usually shows up in four places.</p><p><strong>The setup tax.</strong> We all know the ritual. We open a new chat and spend ten minutes massaging the AI: &#8220;You are a world-class senior staff designer.&#8221; &#8220;Here&#8217;s the product.&#8221; &#8220;Use our design system.&#8221; &#8220;Do not invent new components.&#8221; All of that. Every time.</p><p><strong>The context collapse.</strong> Just when the conversation feels grounded, the thread bloats, the model loses the plot, and we find ourselves begging the AI to summarize. Then we paste that half-trusted slop into a new chat, cross our fingers, and pretend we can pick up where we left off.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P64d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P64d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 424w, https://substackcdn.com/image/fetch/$s_!P64d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 848w, https://substackcdn.com/image/fetch/$s_!P64d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 1272w, https://substackcdn.com/image/fetch/$s_!P64d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P64d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png" width="1122" height="1402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1402,&quot;width&quot;:1122,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1802610,&quot;alt&quot;:&quot;Four-panel comic of a designer's face being made up as prompts pile on: world-class designer, use our design system, do not invent components. Final panel: full clown face. Caption: \&quot;Context window exploded, start compacting.\&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Four-panel comic of a designer's face being made up as prompts pile on: world-class designer, use our design system, do not invent components. Final panel: full clown face. Caption: &quot;Context window exploded, start compacting.&quot;" title="Four-panel comic of a designer's face being made up as prompts pile on: world-class designer, use our design system, do not invent components. Final panel: full clown face. Caption: &quot;Context window exploded, start compacting.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!P64d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 424w, https://substackcdn.com/image/fetch/$s_!P64d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 848w, https://substackcdn.com/image/fetch/$s_!P64d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 1272w, https://substackcdn.com/image/fetch/$s_!P64d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b48c6a5-d756-4ff6-ae1b-af61ed02320a_1122x1402.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The solution silo.</strong> One designer figures out how to get the model to respect the component system. Another lands on the critique framing that finally produces useful feedback. Someone else finds the workaround for a recurring edge case. But those discoveries rarely become shared infrastructure. They stay trapped in threads, personal notes, and individual habits. The team gets smarter person by person, but not system by system.</p><p><strong>The review debt.</strong> Once everyone gets hyper-productive, the bottleneck shifts. We have plenty of output. What&#8217;s missing is constructive review. By the time work reaches a teammate, we may already be burned out from the micro-review loops that happen while prompting, correcting, and regenerating with AI. Cheap generation can create expensive critique.</p><p>With each tool release, the loop repeats. The team gets curious, sensing and fearing there&#8217;s a better option out there. The workflow you were building suddenly feels unfinished. A few designers break off to try the new thing. Parts of it work, which makes it harder to ignore. Before the team can settle, another tool shows up.</p><p>That&#8217;s the trap. When each tool resets the practice, the team never builds leverage. It just gets better at onboarding the next tool.</p><h2>How might we harness the tools instead of chasing them?</h2><p>The answer is a layer the team owns: a <strong>design harness</strong>. It stores the context, skills, workflows, standards, and lessons that make AI useful beyond a single session.</p><p>In practice, it can start as a GitHub repo that both teammates and agents can access.</p><pre><code><code>&lt;repo-root&gt;/
&#9500;&#9472;&#9472; AGENTS.md           # always-loaded entry point for the harness
&#9500;&#9472;&#9472; docs/
&#9474;   &#9500;&#9472;&#9472; context/        # Layer 1
&#9474;   &#9500;&#9472;&#9472; rubrics/        # Layer 4
&#9474;   &#9492;&#9472;&#9472; knowledge/      # Layer 5
&#9500;&#9472;&#9472; skills/             # Layer 2
&#9492;&#9472;&#9472; agents/             # Layer 3</code></code></pre><p><code>AGENTS.md</code> is the always-loaded entry point. It defines the agent&#8217;s role and what it can do: which context to load, which skills it can call, when to hand off, where evaluation and knowledge live.</p><p><code>docs/context/</code> holds durable context. <code>skills/</code> holds repeatable jobs. <code>agents/</code> holds workflow orchestration. <code>docs/rubrics/</code> holds evaluation logic. <code>docs/knowledge/</code> holds what the team learns over time.</p><p>A harness doesn&#8217;t have to be complete to be useful. Even a basic version changes what gets produced:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!US1E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!US1E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 424w, https://substackcdn.com/image/fetch/$s_!US1E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 848w, https://substackcdn.com/image/fetch/$s_!US1E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!US1E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!US1E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png" width="1080" height="1350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1350,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1422924,&quot;alt&quot;:&quot;Two annotated dashboards. Top, \&quot;without harness,\&quot; flagged red: missing asset, hallucinated widget, invented component, hardcoded values. Bottom, \&quot;with harness,\&quot; flagged green: linked asset, imported widget, library component, tokens.&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two annotated dashboards. Top, &quot;without harness,&quot; flagged red: missing asset, hallucinated widget, invented component, hardcoded values. Bottom, &quot;with harness,&quot; flagged green: linked asset, imported widget, library component, tokens." title="Two annotated dashboards. Top, &quot;without harness,&quot; flagged red: missing asset, hallucinated widget, invented component, hardcoded values. Bottom, &quot;with harness,&quot; flagged green: linked asset, imported widget, library component, tokens." srcset="https://substackcdn.com/image/fetch/$s_!US1E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 424w, https://substackcdn.com/image/fetch/$s_!US1E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 848w, https://substackcdn.com/image/fetch/$s_!US1E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!US1E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F445a0282-506c-4f21-aac2-6b7dda0c718f_1080x1350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Besides better output, the day-to-day work also starts to shift:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nFPv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nFPv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nFPv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:965302,&quot;alt&quot;:&quot;Table comparing without and with harness. Context: re-explained vs carried forward. Skills: hacks vs shared. Workflow: improvised vs orchestrated. Standards: implicit vs checkable. Knowledge: trapped vs compounding. Ownership: vendor vs team.&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Table comparing without and with harness. Context: re-explained vs carried forward. Skills: hacks vs shared. Workflow: improvised vs orchestrated. Standards: implicit vs checkable. Knowledge: trapped vs compounding. Ownership: vendor vs team." title="Table comparing without and with harness. Context: re-explained vs carried forward. Skills: hacks vs shared. Workflow: improvised vs orchestrated. Standards: implicit vs checkable. Knowledge: trapped vs compounding. Ownership: vendor vs team." srcset="https://substackcdn.com/image/fetch/$s_!nFPv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!nFPv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb98b44-64bd-4c40-91b3-8611a7bc8096_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As the harness matures, design teams can incorporate new tools more sustainably: less switching cost, less mental burden, and better outcomes each time.</p><h2>Layer 1 - Context Engineering</h2><blockquote><p><em>Prompting closes the communication gap. Context closes the information gap.</em></p></blockquote><p>A better prompt can help the model understand what you want in the moment. It can&#8217;t rebuild the team&#8217;s information base every time a new session starts. That&#8217;s what context engineering is for.</p><p>This layer builds on the same idea as <code>design.md</code>. The goal is to give the agent access to the core context the human in the loop trusts.</p><p>Design teams already produce a lot of this material: product one-pagers, requirements, user journey maps, service blueprints, success metrics, and design system documentation. Context engineering starts by upcycling what already exists into durable files that can be reused across sessions, teammates, and tools.</p><p>That&#8217;s where <strong>progressive disclosure</strong> comes in. The harness should give the agent the right context at the right moment. It should start with the smallest useful slice, then pull in deeper product, system, or research context only when the task calls for it. If you&#8217;re tweaking the corner radius of a button component, you probably don&#8217;t need the whole service blueprint in context.</p><p>Here&#8217;s a simple starting shape:</p><pre><code><code>docs/
&#9492;&#9472;&#9472; context/                     # L1, what's always true
    &#9500;&#9472;&#9472; product/
    &#9474;   &#9500;&#9472;&#9472; one-pager.md
    &#9474;   &#9500;&#9472;&#9472; user-research/
    &#9474;   &#9500;&#9472;&#9472; user-journeys/
    &#9474;   &#9500;&#9472;&#9472; service-blueprints/
    &#9474;   &#9500;&#9472;&#9472; capabilities.md
    &#9474;   &#9492;&#9472;&#9472; success-metrics.md
    &#9500;&#9472;&#9472; engineering/
    &#9500;&#9472;&#9472; design-system/
    &#9474;   &#9500;&#9472;&#9472; principles.md
    &#9474;   &#9500;&#9472;&#9472; design-language.md
    &#9474;   &#9500;&#9472;&#9472; foundations/        # color, elevation, icon, layout, motion, typography
    &#9474;   &#9492;&#9472;&#9472; components/
    &#9492;&#9472;&#9472; conventions/</code></code></pre><p>Teams with mature design systems already have a head start. A lot of what lives in Figma today already counts as reusable context. Principles, foundations, component usage guidance, naming conventions. The more context lives in the harness, the less you re-explain it every session.</p><h2>Layer 2 - Skill Curation</h2><blockquote><p><em>Context makes your agent better at understanding the work. Skills make it better at doing the work.</em></p></blockquote><p>If you haven&#8217;t heard of a <strong>skill</strong> before, you can think of it as a pre-packaged, well-crafted prompt, but it goes beyond that in several ways:</p><ul><li><p>It carries trigger logic, so the agent knows when to use it and when to stay out of the way.</p></li><li><p>It is not flat: context loads dynamically, only when the job calls for it, keeping the context window lean. This is the same progressive disclosure idea from Layer 1, applied to skills.</p></li><li><p>It is not limited to text. Assets, references, and scripts can travel with it.</p></li></ul><p>Suppose a designer wants help turning a wireframe into a higher-fidelity prototype that still respects the design system. In a normal chat workflow, that method stays personal: a prompt, a checklist, a few dos and don&#8217;ts. We can turn this into a <code>prototype/</code> skill the team can reuse. It&#8217;s built from four parts:</p><pre><code><code>skills/
&#9492;&#9472;&#9472; prototype/
    &#9500;&#9472;&#9472; SKILL.md
    &#9500;&#9472;&#9472; references/
    &#9474;   &#9500;&#9472;&#9472; low-fi/
    &#9474;   &#9500;&#9472;&#9472; mid-fi/
    &#9474;   &#9492;&#9472;&#9472; high-fi/
    &#9500;&#9472;&#9472; assets/
    &#9474;   &#9500;&#9472;&#9472; wireframes/
    &#9474;   &#9500;&#9472;&#9472; svg/
    &#9474;   &#9500;&#9472;&#9472; tokens/
    &#9474;   &#9492;&#9472;&#9472; copy/
    &#9492;&#9472;&#9472; scripts/
        &#9500;&#9472;&#9472; export-assets.ts
        &#9500;&#9472;&#9472; validate-tokens.ts
        &#9492;&#9472;&#9472; package-output.ts</code></code></pre><ul><li><p><code>SKILL.md</code> defines what the skill is for, when to use it, what it expects, what constraints to obey, and what to return. For a prototype skill, that might mean preserving flow structure, using approved components, and packaging output for reuse.</p></li><li><p><code>references/</code> gives the skill precedent at the right fidelity. Low-fi for information architecture, mid-fi for interaction patterns, high-fi for polish. This helps the model reach for the right kind of solution instead of improvising the wrong visual language.</p></li><li><p><code>assets/</code> holds the files the skill needs to inspect or produce. Wireframes, SVGs, tokens, copy. The concrete materials that keep the skill grounded.</p></li><li><p><code>scripts/</code> wraps repeatable automation. Validating tokens, exporting assets, packaging output for handoff so the model isn&#8217;t redoing those steps from scratch.</p></li></ul><p>Anyone can call a skill, run the operation, and hit the same quality bar. That&#8217;s how repeatable work becomes reliable.</p><h2>Layer 3 - Workflow Orchestration</h2><blockquote><p><em>Workflow is where skills connect and new tools fit without starting over.</em></p></blockquote><p>Skills get more powerful when they connect. That&#8217;s what workflow makes possible. Most design teams already have a workflow, even when it isn&#8217;t written down. The challenge is making it explicit enough for the agent to follow.</p><p>Take the <a href="https://www.designcouncil.org.uk/our-resources/the-double-diamond/">Double Diamond</a>, a framework that many design thinkers are familiar with, as an example:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OZmQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OZmQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OZmQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1924748,&quot;alt&quot;:&quot;The Double Diamond framework: two connected diamond shapes with arrows along the edges. Four phases left to right: Discover, Define, Develop, Deliver. Cartoon characters illustrate each phase.&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Double Diamond framework: two connected diamond shapes with arrows along the edges. Four phases left to right: Discover, Define, Develop, Deliver. Cartoon characters illustrate each phase." title="The Double Diamond framework: two connected diamond shapes with arrows along the edges. Four phases left to right: Discover, Define, Develop, Deliver. Cartoon characters illustrate each phase." srcset="https://substackcdn.com/image/fetch/$s_!OZmQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!OZmQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e94417c-76d3-4814-9156-aca5a870a7ae_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That shape points toward the first skills a team builds:</p><ul><li><p><strong>Discover</strong> introduces a research synthesis skill.</p></li><li><p><strong>Define</strong> introduces a problem-framing skill.</p></li><li><p><strong>Develop</strong> introduces concepting, prototyping, and critique skills.</p></li><li><p><strong>Deliver</strong> introduces handoff, QA, and documentation skills.</p></li></ul><p>As those skills mature, the workflow can become more sophisticated. A team might start with four broad skills, then break them into more specialized operations: journey synthesis, opportunity framing, interaction design, accessibility review, and handoff packaging.</p><p>With more skills in play, coordinating them becomes the next thing to design. That&#8217;s orchestration, and it lives in <code>agents/</code>. Where <code>skills/</code> define what each operation does, <code>agents/</code> define how those operations move through the workflow. This layer handles <strong>routing and chaining</strong>: which agent should handle the request, which skill should run next, which steps need to happen in <strong>sequence</strong>, and which checks can run in <strong>parallel</strong>.</p><p>An expanded <code>agents/</code> folder might look like this:</p><pre><code><code>agents/
&#9500;&#9472;&#9472; orchestrator.md                 
&#9500;&#9472;&#9472; workflows/
&#9474;   &#9500;&#9472;&#9472; double-diamond.md          
&#9474;   &#9500;&#9472;&#9472; prototyping-sequence.md      
&#9474;   &#9492;&#9472;&#9472; parallel-review-checks.md   
&#9500;&#9472;&#9472; roles/
&#9474;   &#9500;&#9472;&#9472; research-synthesis-agent.md
&#9474;   &#9500;&#9472;&#9472; product-framing-agent.md
&#9474;   &#9500;&#9472;&#9472; interaction-design-agent.md
&#9474;   &#9500;&#9472;&#9472; visual-system-agent.md
&#9474;   &#9500;&#9472;&#9472; content-design-agent.md
&#9474;   &#9500;&#9472;&#9472; accessibility-review-agent.md
&#9474;   &#9492;&#9472;&#9472; handoff-agent.md
&#9492;&#9472;&#9472; handoffs/
    &#9500;&#9472;&#9472; handoff-template.md
    &#9492;&#9472;&#9472; review-gate-template.md</code></code></pre><p>For example, a <code>prototype/</code> skill might route first to an interaction-design agent, then chain into a visual-system agent and a handoff agent.</p><pre><code><code>sequential prototyping steps
&#8594; interaction-design-agent
&#8594; visual-system-agent
&#8594; handoff-agent

parallel checks:
&#8627; content-design-agent
&#8627; accessibility-review-agent
&#8627; evaluation rubric</code></code></pre><p>The agents generating the prototype work sequentially, iterating on different parts. Once that&#8217;s done, the reviewer agents run in parallel to check against all rubrics.</p><p>But running the workflow well isn&#8217;t enough. Every output still needs a check before it reaches a person.</p><h2>Layer 4 - Evaluation Design</h2><blockquote><p><em>Standard left undefined becomes output left unaligned.</em></p></blockquote><p>The model&#8217;s non-deterministic behavior is a feature, not a bug. It gives the system room to explore. Without evaluation, that same flexibility turns into drift.</p><p>Evaluation design defines what &#8220;good enough to review&#8221; means before a teammate sees it. If you&#8217;re familiar with software development, think of these as <strong>test cases for design work</strong>. They catch predictable failures before someone has to look at them.</p><p>Useful checks are often narrow: component usage, token usage, accessibility, content fit, or system alignment. They don&#8217;t need to judge the whole piece of work at once.</p><p>In the same prototype example, once the agent produces work for review, an <strong>evaluation rubric</strong> might focus on component usage and token usage. Not the whole prototype. Just that one class of system alignment.</p><pre><code><code>prototype skill rubric: component and token usage

Criteria
- Uses approved design-system components where applicable
- Avoids recreating existing components from scratch
- Uses approved tokens instead of hard-coded values
- Keeps spacing, radius, color, and type choices aligned to system tokens

Pass signal
- Output stays within the component library and token system
- No obvious system drift or hand-made substitutes appear in the result

Fail signal
- Invents local variants of existing components
- Hard-codes visual values where tokens should have been used
- Mixes system-approved elements with ad hoc styling</code></code></pre><p>Rubrics protect critique from becoming cleanup.</p><h2>Layer 5 - Knowledge Compounding</h2><blockquote><p><em>Sessions end. Lessons shouldn&#8217;t.</em></p></blockquote><p>This layer is heavily inspired by <a href="https://every.to/guides/compound-engineering">Kieran Klaassen&#8217;s work on Compound Engineering</a> and the idea that each unit of work should make the next one easier.</p><p>Designers learn useful things while prompting, prototyping, reviewing, and debugging with AI. In most AI workflows, those lessons disappear into the thread.</p><p>Knowledge compounding captures those bits and bytes of insight and helps the harness improve over time.</p><p>Some lessons need more of the agent&#8217;s attention than others. <strong>Memory types</strong> are one way to organize 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_!p2az!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p2az!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!p2az!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!p2az!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!p2az!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p2az!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1015353,&quot;alt&quot;:&quot;Table of four memory types. Procedural: rules, in AGENTS.md and .agent/. Semantic: product facts, in docs/context/. Episodic: lessons, in docs/knowledge/. Working: active session, in context window and .agent/handoffs/.&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Table of four memory types. Procedural: rules, in AGENTS.md and .agent/. Semantic: product facts, in docs/context/. Episodic: lessons, in docs/knowledge/. Working: active session, in context window and .agent/handoffs/." title="Table of four memory types. Procedural: rules, in AGENTS.md and .agent/. Semantic: product facts, in docs/context/. Episodic: lessons, in docs/knowledge/. Working: active session, in context window and .agent/handoffs/." srcset="https://substackcdn.com/image/fetch/$s_!p2az!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!p2az!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!p2az!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!p2az!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65c31efc-64f8-4837-b054-9f3334eb1cfb_1672x941.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>New lessons start in the episodic layer:</p><pre><code><code>docs/knowledge/
&#9500;&#9472;&#9472; changelog.md
&#9500;&#9472;&#9472; decisions.md
&#9500;&#9472;&#9472; ideations.md
&#9500;&#9472;&#9472; preferences.md
&#9492;&#9472;&#9472; lessons/
    &#9492;&#9472;&#9472; YYYY-MM-DD-slug.md</code></code></pre><p>This gives observations somewhere to land before they earn their way up.</p><p>Where each lesson lives depends on how often it shows up and how much it matters. This is how knowledge compounds beyond the knowledge folder:</p><ul><li><p>A one-off observation stays in <code>docs/knowledge/</code>.</p></li><li><p>A repeated pattern moves into <code>docs/context/</code>.</p></li><li><p>A rule everyone follows belongs in <code>AGENTS.md</code>.</p></li></ul><p>That upward movement is <strong>promotion</strong>. Lessons move higher as they prove themselves over more sessions. <strong>Retirement</strong> moves in the other direction. When a lesson stops helping, it gets obsoleted and removed from the harness.</p><h2>The floor, the ceiling, and the ladder</h2><blockquote><p><em>Tools lower the floor. Taste sets the ceiling. Your harness is the ladder.</em></p></blockquote><p>The tools aren&#8217;t weak. The releases aren&#8217;t all overhyped. But tools come and go. What&#8217;s worth your time and energy is the durable asset, the layer your team owns. Build the harness and you&#8217;ve built the ladder to your team&#8217;s full potential.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eB8Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eB8Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eB8Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc8379cb-0432-4a49-90f6-3633736f54f9_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;:2593727,&quot;alt&quot;:&quot;Pop-art meme of a smiling man in a yellow tuxedo raising a champagne coupe against a pink halftone background. Top text: \&quot;ME WATCHING THE HARNESS.\&quot; Bottom text: \&quot;SURVIVE THE NEXT TOOL LAUNCH.\&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://rexandduckie.substack.com/i/195472769?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Pop-art meme of a smiling man in a yellow tuxedo raising a champagne coupe against a pink halftone background. Top text: &quot;ME WATCHING THE HARNESS.&quot; Bottom text: &quot;SURVIVE THE NEXT TOOL LAUNCH.&quot;" title="Pop-art meme of a smiling man in a yellow tuxedo raising a champagne coupe against a pink halftone background. Top text: &quot;ME WATCHING THE HARNESS.&quot; Bottom text: &quot;SURVIVE THE NEXT TOOL LAUNCH.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!eB8Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!eB8Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc8379cb-0432-4a49-90f6-3633736f54f9_1448x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To put this into practice, <a href="https://github.com/BilLogic/harness-designing-plugin">harness-designing-plugin</a> packages these ideas into a practical set of tools to get moving.</p><p>For a working example: my team of 15 at PLUS built <a href="https://github.com/BilLogic/plus-uno">PLUS-UNO</a>. It&#8217;s our own harness, shaped to our product, design system, and team practice.</p><p>Build the layer you own. Build your ladder.</p><h2>References and influences</h2><p>This piece draws on a few bodies of work that made the design-harness framing more legible:</p><ul><li><p>Harness vocabulary and anatomy: LangChain&#8217;s <a href="https://www.langchain.com/blog/the-anatomy-of-an-agent-harness#filesystems-for-durable-storage-and-context-management">The Anatomy of an Agent Harness</a> and related writing on harness memory. This is the main vocabulary lineage for &#8220;harness,&#8221; memory framing, and team ownership.</p></li><li><p>Compounding practice: <a href="https://every.to/guides/compound-engineering">Compound Engineering</a> by Kieran Klaassen at Every. The lesson &#8594; rule loop shaped Layer 5.</p></li><li><p>Context engineering and long-running agents: Anthropic&#8217;s writing on <a href="https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents">context engineering</a>, <a href="https://www.anthropic.com/engineering/harness-design-long-running-apps">harness design for long-running apps</a>, and <a href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices">Claude Skills</a>. These shaped the progressive disclosure and attention-budget framing.</p></li><li><p>Working examples: <a href="https://github.com/BilLogic/plus-uno">Plus Uno</a> and <a href="https://github.com/BilLogic/harness-designing-plugin">harness-designing-plugin</a>.</p></li></ul>]]></content:encoded></item></channel></rss>