<?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[Animacy]]></title><description><![CDATA[Where the psychology of what makes people exceptional meets design and product building. Applied to real people, teams, and systems.]]></description><link>https://www.eveblou.com</link><image><url>https://www.eveblou.com/img/substack.png</url><title>Animacy</title><link>https://www.eveblou.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 25 Jul 2026 13:54:54 GMT</lastBuildDate><atom:link href="https://www.eveblou.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Eve-Marie]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[eveblou@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[eveblou@substack.com]]></itunes:email><itunes:name><![CDATA[Eve-Marie]]></itunes:name></itunes:owner><itunes:author><![CDATA[Eve-Marie]]></itunes:author><googleplay:owner><![CDATA[eveblou@substack.com]]></googleplay:owner><googleplay:email><![CDATA[eveblou@substack.com]]></googleplay:email><googleplay:author><![CDATA[Eve-Marie]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Conditionals: how to spot decision patterns in code (and everywhere else)]]></title><description><![CDATA[Don't outsource your critical thinking. This essay teaches you how to spot decision patterns and avoid AI slop.]]></description><link>https://www.eveblou.com/p/conditionals-how-to-spot-decision</link><guid isPermaLink="false">https://www.eveblou.com/p/conditionals-how-to-spot-decision</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Tue, 21 Jul 2026 11:44:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ti4p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Last time, we covered loops, the part of code that repeats an action. If you haven&#8217;t read that one, <a href="https://www.eveblou.com/p/loops-how-to-spot-repeated-patterns">start here</a>, since conditionals are the piece that usually lives right inside a loop, deciding what happens on each pass.</em></p><div><hr></div><h2>Why conditionals are worth understanding</h2><p><a href="https://www.eveblou.com/p/loops-how-to-spot-repeated-patterns">Last time</a>, I wrote a short guide on loops for people who don&#8217;t write code but increasingly need to understand what it's doing. My anti-slop cheat sheet. Because I believe that even if you don&#8217;t code, or if you now code less, the inherent logic behind code is still important to understand. It&#8217;s how computers communicate with humans after all. Sure, AI talks to us in natural language (and a lot of us would argue, it uses too many words). But it reasons and acts in code, and then in binary (but we don&#8217;t need to go that deep). </p><p>And I think if we get too far from the nature of how technology communicates and reasons, we&#8217;ll outsource all our critical thinking to the machines that run our lives. </p><p>So this is my challenge to you. In your next prototype or project, in that next dashboard you decided to vibe code for your manager, look for loops, and look for conditionals. And ask yourself what they&#8217;re doing. Then ask your AI agent, and see if the logic lines up with the output you&#8217;re actually looking for. </p><p>This is the new kind of literacy. It might seem toilsome in the moment because you&#8217;re learning something new (or you&#8217;re practicing something old from a new angle), but like a chess grandmaster that put in hours of practice to recognize and anticipate shapes and patterns on the board, once you can spot those shapes inside blocks of code, you&#8217;ll start noticing them everywhere rules get made and logic is needed. A policy document, a set of hiring criteria, a pricing tier, an argument someone&#8217;s making in a meeting.  </p><p>So the goal here isn&#8217;t code literacy for its own sake. It&#8217;s recognizing the shape of a decision clearly enough to sanity-check it and think critically about it. </p><p>Are you ready? Let&#8217;s dive in.</p><div><hr></div><h2>What&#8217;s in a conditional</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ti4p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ti4p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ti4p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg" width="3805" height="2611" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2611,&quot;width&quot;:3805,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2699629,&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://www.eveblou.com/i/207761170?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47c8b038-562d-4096-bf1c-6954c1179b4a_3967x2743.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_!ti4p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ti4p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2842d18-8c16-464a-8876-0587ffa229e3_3805x2611.jpeg 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 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"><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"><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>If loops are about repetition, then conditionals are about decisions. They&#8217;re the part of the code that says &#8220;it depends&#8221; and then spells out exactly what it depends <em>on</em>. They&#8217;re an instruction that says: <strong>check if something is true, and do a different thing depending on the answer.</strong></p><p>The reason conditionals exist in code is the same reason they exist in real life: you constantly make decisions based on circumstances, not on a fixed script.</p><p><strong>A real-life conditional you already run</strong></p><blockquote><p><em>If it&#8217;s raining, bring an umbrella. Otherwise, wear sunglasses.</em></p></blockquote><p>That&#8217;s exactly what a conditional does in code. It has:</p><ul><li><p>A <strong>condition</strong> to check (is it raining?)</p></li><li><p>An <strong>action for when it&#8217;s true</strong> (bring the umbrella)</p></li><li><p>An <strong>action for when it&#8217;s false</strong> (wear sunglasses)</p></li></ul><div><hr></div><h2>How to read a conditional when you see one</h2><p>You don&#8217;t need to understand every symbol, but make sure you ask four questions:</p><ol><li><p><strong>What&#8217;s the condition being checked?</strong> (A value? A comparison? Multiple things at once?)</p></li><li><p><strong>What happens if it&#8217;s true?</strong></p></li><li><p><strong>What happens if it&#8217;s false, or if there are other cases in between?</strong></p></li><li><p><strong>What order are the conditions checked in?</strong> </p></li></ol><p>If you can answer those four questions, you understand the conditional, and you can start seeing what decision it&#8217;s actually making inside the larger system.</p><div><hr></div><h2>The three core patterns</h2><p>Almost every conditional you&#8217;ll encounter in the real world is a version of these three (high-level) patterns.</p><div><hr></div><h3>Pattern 1: the simple if (&#8221;do this, only if&#8221;)</h3><p>The most basic version. One condition, one action. If the condition isn&#8217;t met, nothing happens.</p><p><strong>The idea</strong></p><blockquote><p><em>If an order is over $100, apply free shipping.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;fa3cd1ce-39fc-4a15-871d-2d6dc216a16b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">if order_total &gt; 100:
    apply_free_shipping()</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;cf7b0f78-a7ac-46f7-b473-e8c07735ce7c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">if (orderTotal &gt; 100) {
  applyFreeShipping();
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;6b53ba47-12ec-481f-b0f0-e4d1a4f69928&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">if order_total &gt; 100
  apply_free_shipping
end</code></pre></div><p>In <strong>SQL</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;7711c8e9-c0d4-43f9-9aff-54bbe4ad121c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">UPDATE orders SET free_shipping = TRUE WHERE order_total &gt; 100;</code></pre></div><p><strong>What to notice</strong></p><ul><li><p>There&#8217;s a condition, and there&#8217;s an action that only fires when it&#8217;s met.</p></li><li><p>If the condition is false, the code simply moves on. </p></li><li><p>SQL hides the &#8220;if&#8221; inside a WHERE clause rather than spelling it out as a separate step.</p></li></ul><div><hr></div><h3>Pattern 2: if / else (&#8221;do this, otherwise do that&#8221;)</h3><p>This pattern guarantees one of two outcomes always happens. Nothing falls through the cracks.</p><p><strong>The idea</strong></p><blockquote><p><em>If a customer is a returning customer, show them their saved cart. Otherwise, show them a new one.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;73a9c67e-5345-4742-8595-226762be790f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">if is_returning_customer:
    show_saved_cart()
else:
    show_new_cart()</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;93a05eb7-e529-484a-8718-175360538371&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">if (isReturningCustomer) {
  showSavedCart();
} else {
  showNewCart();
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;5a8ef9f6-7a0a-4495-8cff-c158f1c186e2&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">if is_returning_customer
  show_saved_cart
else
  show_new_cart
end</code></pre></div><p>In <strong>SQL</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;d066d5eb-0cd5-4451-a873-f7988f7ab72b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">SELECT CASE
  WHEN is_returning_customer THEN 'saved_cart'
  ELSE 'new_cart'
END AS cart_type
FROM customers;</code></pre></div><p><strong>What to notice</strong></p><ul><li><p>Every customer lands somewhere. There&#8217;s no third option, no gap.</p></li><li><p>This is the pattern to look for whenever you need certainty that <em>something</em> happens no matter what the input looks like.</p></li><li><p>SQL&#8217;s CASE statement is doing the same job as if/else, just written as an expression (when) instead of a block.</p></li></ul><div><hr></div><h3>Pattern 3: the chain (&#8221;check these, in order, until one fits&#8221;)</h3><p>Sometimes there are more than two possible outcomes. This pattern checks conditions one at a time, top to bottom, and stops at the first one that&#8217;s true.</p><p><strong>The idea</strong></p><blockquote><p><em>If a support ticket is urgent, route it to the on-call agent. Otherwise if it&#8217;s a billing issue, route it to billing. Otherwise, route it to the general queue.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;1b9e3105-a0ef-475b-85cd-21763ffd6aa9&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">if ticket.is_urgent:
    route_to_oncall()
elif ticket.category == "billing":
    route_to_billing()
else:
    route_to_general_queue()</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;3ec844fa-5ba1-43a2-bf11-b31c0c720405&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">if (ticket.isUrgent) {
  routeToOncall();
} else if (ticket.category === "billing") {
  routeToBilling();
} else {
  routeToGeneralQueue();
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;0ce6e989-6075-4781-971f-0e8d7c714425&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">if ticket.urgent?
  route_to_oncall
elsif ticket.category == "billing"
  route_to_billing
else
  route_to_general_queue
end</code></pre></div><p>In <strong>SQL</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;390cda87-8f09-42e9-b7c4-00b5e7c32a06&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">SELECT CASE
  WHEN is_urgent THEN 'oncall'
  WHEN category = 'billing' THEN 'billing'
  ELSE 'general_queue'
END AS routed_to
FROM tickets;</code></pre></div><p><strong>What to notice</strong></p><ul><li><p>Order matters here in a way it didn&#8217;t in the first two patterns. If a ticket is both urgent <em>and</em> a billing issue, it goes to on-call, because that condition is checked first. Swap the order, and the same ticket goes to billing instead.</p></li><li><p>This is the pattern behind most routing logic, tiered pricing, and eligibility rules (anywhere there are more than two buckets something can fall into).</p></li><li><p><strong>One thing to watch for:</strong> a chain with no final &#8216;else&#8217; can leave a case with nowhere to go. If none of the conditions match and there&#8217;s no catch-all, the code may do nothing at all. </p></li></ul><div><hr></div><h2>A quick mental model to take away</h2><p>Back to real life for a moment:</p><ul><li><p>The <strong>simple if</strong> is you grabbing an umbrella only if it&#8217;s raining, and doing nothing different otherwise.</p></li><li><p>The <strong>if/else</strong> is you always leaving the house dressed for something. You&#8217;re prepared with rain gear or sunglasses, one or the other, but never neither.</p></li><li><p>The <strong>chain</strong> is you checking, in order: is it raining? If yes, grab the umbrella. Is it cold? If yes, grab a coat. On a day that&#8217;s both rainy and cold, checking rain first means you walk out with just the umbrella, no coat. Swap the order, and that same day gets you a coat with no umbrella. Either way, you only ever end up with one item, because a chain stops at the first match.</p></li><li><p>If you actually wanted <strong>both</strong> the umbrella and the coat on a day that&#8217;s rainy <em>and</em> cold, you&#8217;d need two separate, independent checks instead of a chain:&#8220;if it&#8217;s raining, grab the umbrella&#8221; and, separately, &#8220;if it&#8217;s cold, grab the coat.&#8221; Each one fires on its own, so nothing has to lose to the other, and the order you check them in stops mattering.</p></li></ul><div><hr></div><p><em>Loops repeat. Conditionals decide. Put them together, and you&#8217;ve got most of what code is actually doing, day to day.  Not so bad, is it? Now go learn those patterns. Happy thinking!</em></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></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[Why simplicity is so hard to get right]]></title><description><![CDATA[Why complexity exists, and why simplifying it is one of the greatest skills you can build]]></description><link>https://www.eveblou.com/p/why-simplicity-is-so-hard-to-get</link><guid isPermaLink="false">https://www.eveblou.com/p/why-simplicity-is-so-hard-to-get</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Tue, 14 Jul 2026 12:36:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W7IF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For a long time, I thought simple equaled laziness. A simple solution or answer signaled that the person didn&#8217;t care to go deeper. They didn&#8217;t take the time to ask why. To sit with the problem long enough for it to grow and connect to other problems, concepts, or phenomena. To see that a lot of things in our world are products of intricate and interconnected systems. </p><p>I took pride in my ability to test the edges of complexity. And I never missed an opportunity to show that I had done my homework, and spent precious minutes in meetings explaining how I got to a recommendation, thinking this would earn more trust with my stakeholders. &#8220;She knows what she&#8217;s talking about&#8221;. </p><p>But <em>leading </em>with complexity constantly backfired. People got lost along the way. They didn&#8217;t trust me more, because they didn&#8217;t understand what I was trying to solve or why they should care. With some trial and error (ok, a lot of trial and error), my relationship to simplicity evolved. In this essay, I want to share with you what I learned in my journey: both complexity and simplicity play a role in the process of discovery. Understand the intricacies first, then solve and communicate with simplicity. Let&#8217;s dive in. </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_!W7IF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W7IF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W7IF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg" width="1456" height="1002" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1002,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1601393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.eveblou.com/i/206637607?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.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_!W7IF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 424w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 848w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!W7IF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1aaa27-cff1-4fff-8f52-3563626f1361_4017x2764.jpeg 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 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"><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"><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><figcaption class="image-caption">The ink blotted so I worked it in. I&#8217;m trying to see opportunity in the mess.</figcaption></figure></div><h2>What is complexity</h2><p>A complex system<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> is the product of hundreds (or thousands or millions or trillions) of interactions among <em>simple</em>, interconnected components. You can spot a complex system by looking for these five things:</p><ul><li><p><strong>Layered structure.</strong> Simple parts combine into stable units that become the parts of something larger. Bases build genes, genes build cells, cells build tissue. Complexity stacks in levels rather than sprawling flat.</p></li><li><p><strong>Emergence.</strong> The system produces behavior no single part contains. No neuron holds a thought; the thought appears only in the firing between millions of them.</p></li><li><p><strong>Interdependence.</strong> The parts respond to each other, so you can&#8217;t understand one in isolation. A single price in a market means nothing until you see what every other buyer and seller is doing in relation to it.</p></li><li><p><strong>Nonlinearity.</strong> Effects aren&#8217;t proportional to causes. One severed power line can black out a whole grid, while adding a dozen new lines might change nothing.</p></li><li><p><strong>Self-organization.</strong> Order arrives from the bottom up, in a spontaneous manner. A trend goes viral because people are sharing, and a coordinated wave forms out of local copying.</p></li></ul><p>Because the rules governing individual components are simple and few, complex systems are actually generated by far less than we might initially think. The clearest case is genetic code. Every living thing is built from sequences of just four bases, and each base follows an almost trivial rule about which other base it pairs with. The entire diversity of life comes down to how many simple-ruled parts interact, not to any part being intricate in and of itself.</p><div><hr></div><h2>Why complexity exists</h2><p>But why do all these self-contained, simple components generate so much complexity when they interact? Why is it needed? Wouldn&#8217;t the world be better if things were simpler? </p><p>When the environment is stable and predictable, a fixed, simple system is enough. It can meet every situation with the same small set of responses, because the situations barely change. But when the environment is varied and keeps shifting (which is arguably, the world we live in), a fixed system gets overrun. </p><p>Complexity is survival. It allows the system to carry enough <em>range</em> to meet a world that keeps producing situations it hasn't seen before. Which means simplifying can never be about deleting complexity entirely. We need it, to some extent. </p><p>So what<em> is</em> simplifying, and why is it useful? </p><div><hr></div><h2>Why simplifying is powerful</h2><p>Remember that complexity emerges from simple local rules. Genetics, ant colonies, markets. The greatest thinkers are people who are able to reverse engineer complexity back to its simple parts. They look at complex, tangled situations and ask: what is the small set of simple rules or mechanisms actually generating all this? They find the core. </p><p>That&#8217;s powerful, because the ability to simplify a complex system is what lets you act decisively, get others to follow, and spend your effort where it actually matters, without getting stuck in the mess. It breaks down into four advantages:</p><div><hr></div><h3><strong>Simplicity as leverage</strong></h3><p>Complex systems are nonlinear, and in a nonlinear system, you can&#8217;t enumerate and control all the interactions, because there are too many. And they cascade. The move is to find leverage points: the few places that are meaningful to describing the whole system. That&#8217;s elegant, and the difference between spending effort proportional to the mess, versus spending it proportional to the cause.</p><div><hr></div><h3><strong>Simplicity as building blocks</strong></h3><p>Recombining simple, stable parts is a central mechanism of how complex systems get built in the first place. A clean, simple solution can enter that same process: it becomes a building block others build on, and it compounds across the whole system, while a complex, special-cased solution is a dead end. </p><div><hr></div><h3><strong>Simplicity as a smaller surface of failure</strong></h3><p>Every bit of unnecessary complexity is surface area for emergent failure. Ten interacting components have 45 possible pairwise interactions, twenty have 190. Each added part interacts with all the others in ways you didn&#8217;t design and can&#8217;t predict. Simplifying shrinks the interaction space, which shrinks the space for emergent bugs, side effects, and unintended consequences.</p><div><hr></div><h3><strong>Simplicity as mental modeling</strong></h3><p>A person who simplifies well is building a good mental model of the system. The naive simple answer (without understanding) is just ignorance. The elegant simple answer (after understanding) is mastery. They can look similar, which is why elegant simple solutions often seem obvious in retrospect. But whoever holds the best model can predict, act, and explain it, while others can get paralyzed by the full mess.</p><div><hr></div><h2>A quick take away</h2><p>Complexity isn&#8217;t going away. If anything, the world is becoming more unpredictable, more information is coming at us, and our ability to reason about it is shrinking. Because everything moves so fast, processing complexity and simplifying is one of the greatest superpowers you can build. Here&#8217;s a quick recipe:</p><ul><li><p><strong>Find the core.</strong> Ask what one subset of rules, if you understood only that, would let you work out what the system is about. Finding it tells you what&#8217;s worth your time, money, and attention, and what is just noise you can safely ignore. It lets you put more effort on the parts that carry the system, versus evenly across the mess.</p></li><li><p><strong>Cut without ego.</strong> Understand the complexity first. If you skip that part, your simplification will be naive. Once you understand enough though, and are ready to explain it to others, cut everything that&#8217;s there to show your work rather than move the goal forward, like the extra context that proves how much you know, or the caveat that shows you thought of everything. If it doesn&#8217;t serve the core, it goes. This makes it a lot cleaner for other people and gets to the point of why they should care.</p></li><li><p><strong>Test by reversal.</strong> A good simplification survives someone asking &#8220;wait, why?&#8221;. You can go one layer deeper on demand, because you took time to understand the details before simplifying. This is how you know your simple version is real and not a guess. The reversal test is your own check that you actually understand the system.</p></li><li><p><strong>Don&#8217;t oversimplify.</strong> Cut the complexity that&#8217;s noisy, but keep the meaningful complexity the core of problem itself contains. Simplifying doesn&#8217;t mean simple for simplicity&#8217;s sake. If you remove meaningful complexity, you won&#8217;t get a simpler answer, you&#8217;ll get a wrong one that sounds clean and confident, and you&#8217;ll act on it and invest in it, only find out it was hollow when it breaks. As Einstein put it, as simple as possible, but no simpler.</p></li></ul><div><hr></div><p><em>Start with one thing this week. Maybe the most tangled problem on your plate. Don't explain it better. Find what's generating it, and cut everything else. See what happens.</em></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This essay is about <em>systemic</em> complexity. Plenty of things get called complex that aren&#8217;t, like a tax form, a dense legal contract, or a sprawling technical manual. Those are complicated. They contain lots of detail, but you can understand them piece by piece, and no amount of studying one clause changes another. </p></div></div>]]></content:encoded></item><item><title><![CDATA[You have an org design problem]]></title><description><![CDATA[A brief history of how organizations moved knowledge and coordinated work, and the blueprint that might actually work for the AI era.]]></description><link>https://www.eveblou.com/p/you-have-an-org-design-problem</link><guid isPermaLink="false">https://www.eveblou.com/p/you-have-an-org-design-problem</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Tue, 07 Jul 2026 14:36:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1P3M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>If you&#8217;ve been reading Animacy for a little while, you know that I&#8217;ve been reflecting a lot on the structural changes that the AI era is bringing to most (if not all) industries. If you haven&#8217;t yet, I suggest you start by reading my <a href="https://www.eveblou.com/p/what-the-org-chart-cant-see-the-new">first</a> and <a href="https://www.eveblou.com/p/built-for-ambiguity-are-these-the">third</a> posts, then come back here. They&#8217;ll help you understand what kind of people organizations should find to succeed in this transition.</em></p><div><hr></div><h3>What&#8217;s an organization? </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1P3M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1P3M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1P3M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg" width="3872" height="2669" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2669,&quot;width&quot;:3872,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5375226,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.eveblou.com/i/204701391?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c6b551c-c5ad-42b7-ad76-9e0f6d9e66d1_3872x2669.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_!1P3M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1P3M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ae494c-3157-4ac4-964d-f7f2447fad20_3872x2669.jpeg 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 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"><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"><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><figcaption class="image-caption">I found myself drawing on a train again. Is this becoming a pattern? Maybe, but it definitely makes it hard to keep a straight line!</figcaption></figure></div><p>What <em>is</em> an organization? For most of us, they&#8217;re a given. They&#8217;re part of a modern society and central to how we interact and navigate the world. We&#8217;ve grown up with our parents, family, or friends working in one. We&#8217;ve experienced them as consumers of products, goods, and entertainment. And for some of us, we&#8217;ve even worked at one (or many). </p><p>But what is an organization really? That question is complex because organizations are complex. They are the product of a web of interactions between people, systems, and missions. They have layers of coordination and hierarchies mixed with rewards and incentives, so that what gets produced is useful, profitable, and in some cases, innovative. </p><p>Since the mid 20th century, the field of organizational design has been tasked with optimizing org &#8216;blueprints&#8217; so that all the parts work together, coherently, to reach a specific goal. In a nutshell, how do you get a group of people with different knowledge, interests, and capabilities to produce something together that none of them could alone?</p><p>That question is as relevant now as it ever was. Maybe even more so. And AI is changing the conditions under which we try to answer it, because it&#8217;s accelerating individual output, and making some coordination mechanisms redundant overnight. </p><div><hr></div><h3>Back to the future</h3><p>There&#8217;s a lot of noise right now about what AI means for how we organize and work, so I&#8217;m going to do what I always do when things get complicated: deconstruct concepts back to their core parts. And focus on a few components at a time (don&#8217;t try to boil the ocean, as they say). </p><p>In this essay, I&#8217;ll be looking back at how organizations evolved across various eras to better understand two core components:</p><ul><li><p>How knowledge moved between people</p></li><li><p>How effort was coordinated</p></li></ul><p>From there, I'll put my designer hat on and start to sketch what a better blueprint might actually look like for the era we're transitioning into.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><div><hr></div><h3>Era 1: the guild </h3><p>~Before 1850</p><p>Before industrialization, the dominant organizational form was the guild. A community of master craftspeople, journeymen, and apprentices organized around a trade. The coordination mechanism was proximity and transmitted knowledge: you learned by being close to someone who already knew the craft.</p><p><strong>Example:</strong> A medieval goldsmith's apprenticeship lasted seven years, working beside someone who already knew the craft on real commissions. Mistakes were visible immediately and had to be corrected in the next piece. The craft transferred through proximity and consequence, not documentation. The workshop was the coordination mechanism. There were no managers.</p><p><strong>What it rewarded:</strong> craft mastery, years of apprenticeship, reputation within a trade community. </p><p><strong>Who thrived</strong>: deep craft specialists with long time horizons and strong guild membership. </p><p><strong>What broke it:</strong> the industrial revolution changed the unit of analysis from the individual craftsperson to the coordinated system. Leverage was now scale rather than depth of craft.</p><div><hr></div><h3>Era 2: the machine </h3><p>~1850&#8211;1940</p><p>The dominant form was the factory and the bureaucracy. Work was decomposed into its smallest possible tasks, each measured and optimized independently. The coordination mechanism was hierarchy and standardization: managers planned, workers executed, and rules governed every point of contact between them. The machine did the coordinating. The worker did one thing.</p><p><strong>Example:</strong> Ford&#8217;s moving assembly line at Highland Park brought a Model T from 12.5 hours to 93 minutes. Taylor&#8217;s experiments at Bethlehem Steel nearly quadrupled pig iron output by prescribing the one best method for every motion.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><p><strong>What it rewarded:</strong> efficiency, output per unit of time, procedural compliance. </p><p><strong>Who thrived:</strong> the reliable executor who could master a decomposed task, the procedurally correct administrator. </p><p><strong>What broke it: </strong>knowledge work. You couldn&#8217;t decompose thinking and judgement into subtasks.</p><div><hr></div><h3>Era 3: human relations </h3><p>~1930&#8211;1960</p><p>What was being built had become too complex for pure task decomposition. Aircraft, telephone exchanges, consumer appliances. These required engineers talking to designers talking to production workers. Judgment was needed at every interface, and so were workers who understood enough of the whole to make good local decisions. The coordination mechanism became management attention and group norms: get the best from people by treating the worker as a social being whose judgment is part of the system.</p><p><strong>Example: </strong>HP was built on the theory that engineers' best work came from understanding what they were building and why, not from following prescribed methods. Hewlett and Packard walked the factory floor daily, talking directly to engineers about their work to understand and unblock. Decisions about how to solve a problem were pushed to whoever was closest to it. </p><p><strong>What it rewarded:</strong> morale, cohesion, loyalty, the ability to inspire people. </p><p><strong>Who thrived:</strong> the good manager who could read the room, the team player who contributed judgment not just compliance. </p><p><strong>What broke it:</strong> the absence of a structural theory. Knowing workers have intrinsic motivation doesn&#8217;t tell you how to design the system around them. The human relations school was excellent at describing the person and largely silent on the organization itself.</p><div><hr></div><h3>Era 4: the adhocracy </h3><p>~1960&#8211;1980</p><p>The Cold War and the pace of technological change meant organizations were being asked to build things nobody had built before, against problems that couldn&#8217;t be anticipated. On top of that, the professional expert class had arrived at scale. Organizations were full of people whose expertise exceeded their managers&#8217; comprehension. The coordination mechanism was meant to adapt to this changing context quickly: match the org structure to what the environment demanded at the time, and let authority follow expertise rather than title.</p><p><strong>Example:</strong> Bell Labs ran an organic structure. No one prescribed the collaboration. The structure assumed people would find each other when necessary. The result: the transistor, UNIX, and nine Nobel Prizes. NASA's Apollo program needed a way to coordinate interdependent problems across 400,000 people. The answer was a matrix. Engineers reported both to a functional department head, who maintained technical standards across the organization, and to a project manager, who was accountable for a specific mission component. </p><p><strong>What it rewarded:</strong> matching structure to context, expertise-based authority, lateral coordination. </p><p><strong>Who thrived:</strong> rapid innovators and people that work best in non-formal, problem-based environments. </p><p><strong>What broke it:</strong> the leading organizational frame moving from &#8220;what structure fits your context&#8221; to &#8220;what strategy are you pursuing and how do you measure performance against it.&#8221; Objectives and competitive positioning became the primary lever.</p><div><hr></div><h3>Era 5: the performance model</h3><p> ~1980+ </p><p>The shift was driven by converging pressures. Capital markets gained power over management decisions. Institutional investors, hostile takeovers, and shareholder primacy meant organizations now answered to quarterly returns in ways they hadn&#8217;t before. Strategy replaced structure as the primary management lever. Work was governed by objectives, reviewed against outcomes, and rewarded through credentials and rank. </p><p>Example: GE&#8217;s vitality curve under Welch divided every employee into top 20%, mid 70%, and bottom 10%. The bottom was fired annually, and the market cap moved from $12 to $410 billion. </p><p><strong>What it rewards:</strong> measurable output, credentials, rank relative to peers, visible achievement. </p><p><strong>Who thrives:</strong> the credentialed achiever, the ambitious strategist, the person whose contribution fits cleanly into a performance review. </p><p><strong>What breaks:</strong> the management layer that coordinates the model can also be the bottleneck. As digital tools routed information faster than human managers can, the layer that translated between strategy and execution became expensive and slow. </p><div><hr></div><h3>Era 6: the startup model </h3><p>~2010+</p><p>Software demonstrated that small autonomous teams could build products of extraordinary value. This winner-take-all economics meant speed to market mattered more than coordinated efficiency. The dominant form was the attempt to remove hierarchy and replace it with culture, shared purpose, and self-management. </p><p>Example: At Buurtzorg, 14,700 nurses were organized in self-managing teams of twelve. It had 8% overhead costs versus a 25% industry average because each team was small, bounded to one neighborhood, with a purpose specific enough that mutual adjustment could handle all coordination.</p><p><strong>What it rewards:</strong> autonomy, self-direction, the ability to manage yourself without oversight. </p><p><strong>Who thrives:</strong> the highly autonomous, psychologically robust generalist. </p><p><strong>What breaks:</strong> scale and the friction of doing coordination work without coordination mechanisms. Removing hierarchy without replacing what it coordinated.</p><div><hr></div><h3>The new blueprint: knowledge transfer and coordination</h3><p>The only mechanism that reliably transfers tacit knowledge is exposure to other people&#8217;s reasoning, and tight feedback loops. Knowledge integrates from retrieval in context, by encountering the right piece of reasoning at the moment it needs to be applied. I think the guild did this best, through prolonged exposure to the master. </p><p>But with the flow of information picking up exponential speed, the gap between what an expert does and what they can articulate is becoming increasingly difficult to close. That&#8217;s why other eras didn&#8217;t succeed in integrating the guild effect, and also why now is the best time to solve the problem of weaving it back in.</p><p>At the same time, the mechanism that enables coordination is shared visibility of work in progress, to the people who need to see it and make decisions about it. In the guild, you could see what the person next to you was making and where they were stuck. In the adhocracy, experts found each other because the problem required it, and the organic structure made those collisions possible. And the startup model had bounded scope: problem boundaries defined the limit of necessary coordination. </p><p>But AI is dismantling this. Every person&#8217;s AI context is siloed. One person with good AI tools can now produce what a small team used to. But those outputs don&#8217;t automatically cohere into something collective. They accumulate in separate contexts, produced by people who may be working on adjacent problems without knowing the other exists. </p><div><hr></div><h3>How do we solve these design challenges? </h3><p>What&#8217;s interesting now is that when someone works through a real problem with AI, every step leaves a trail. That wasn&#8217;t true for post-guild eras. The first prompt reveals how they framed the problem. The edits to the output or the decision to stop and try something different show what the person thought was missing. </p><p>I think the new organizational blueprint needs to leverage this, and build AI knowledge transfer and coordination into the main infrastructure. It needs to be <em><strong>centralized</strong></em> and do three things. </p><p>First, every AI reasoning session produces a structured artifact automatically. This might look like a decision log based on what was tried, what was rejected and why, and where judgment was exercised at each fork. It should be automatically tagged by problem type, stored in a shared substrate, and require zero extra effort from the person who did the work. </p><p>Second, when anyone on the team (or adjacent teams working on similar problem types) faces a similar decision, the infrastructure should automatically deliver relevant reasoning when it needs to be applied. People shouldn&#8217;t have to go digging for it, and it shouldn&#8217;t be bound to current hierarchical structures. This person faced this exact fork three months ago. Here is how they reasoned through it and how it applies to your problem. </p><p>Third, reasoning is available in whatever format makes most sense to the task and to the person receiving the information. I&#8217;m thinking voice narration, visual decision maps or graphs, or annotated judgment calls. Text isn&#8217;t always the best, and I think people are becoming increasingly overloaded because they are reading too much information-dense text. Input formatted to match the context will increase the chances that knowledge is actually transferred and integrated successfully.</p><div><hr></div><h3>What the new blueprint needs to reward</h3><p>Right now the AI transition rewards individual output, AI fluency, and speed of execution. The person who generates the most, fastest. That&#8217;s the current default.</p><p>But I think the org blueprint that gets this right will reward the quality of reasoning embedded in output, not the volume of output itself. Because the artifact stream makes reasoning visible and traceable, you can see for the first time whose thinking actually changed what others were building. Output that generates no downstream consequence looks different from output whose reasoning propagates through five subsequent decisions across adjacent teams. </p><p>Organizations that implement these structural changes will be best positioned to transfer relevant knowledge and coordinate information across all problem spaces, no matter where they sit in the org. And they will be able to see and reward the people who contribute most to this new structure. </p><div><hr></div><p><em>From there, the next design decisions should follow naturally: which structural components are now redundant? What is the right team structure once knowledge transfer and coordination are solved? How is mission-aligned work determined? How is performance assessed? I&#8217;ll be exploring those questions soon, so make sure to check back in. </em></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>You&#8217;ll notice that our modern organizations have kept some pieces from the past, or are still operating according to a past era&#8217;s blueprints. Current org shapes depend on many factors like resistance to change, context, and operating model. What I&#8217;ll be showing you is the prevalent mode for each specific era.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>When organizations talk about automating tasks with AI today, they are largely using this same frame: decompose the work to its smallest unit, automate each unit, sum the result. This works for tasks whose value is their output. It breaks for tasks whose value is the thinking embedded in producing them. When you automate the task without preserving that thinking, you produce the output without the value. </p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Loops: a guide for people who don’t write code but increasingly need to understand what it's doing]]></title><description><![CDATA[How to spot repeated patterns in AI-generated code and trust the insights]]></description><link>https://www.eveblou.com/p/loops-how-to-spot-repeated-patterns</link><guid isPermaLink="false">https://www.eveblou.com/p/loops-how-to-spot-repeated-patterns</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Tue, 30 Jun 2026 11:25:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JCCG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg" 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_!JCCG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JCCG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JCCG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg" width="2980" height="1954" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1954,&quot;width&quot;:2980,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1414109,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.eveblou.com/i/203844808?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c133238-b0f5-47a5-b971-18f93f564676_2980x1954.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_!JCCG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JCCG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F588cef13-ddf4-4530-b6b8-40689f3f1a2b_2980x1954.jpeg 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 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"><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"><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><figcaption class="image-caption">I am a strange loop</figcaption></figure></div><h2>Why this matters now</h2><p>AI tools can now write, run, and explain code on your behalf. That&#8217;s useful. But it also means more and more people (think product managers, marketers, HR pros, analysts, ops leads) will see code as part of their work, review what AI has produced, or need to ask better questions about it.</p><p>You don&#8217;t need to <em>write</em> code to benefit from understanding it. You need to be able to read it the way you might read a contract, so that you can know (generally) what it&#8217;s doing and whether it&#8217;s accomplishing what you intended.</p><div><hr></div><h2>Why loops are worth understanding </h2><p>Code has many sources of leverage. Algorithms determine how efficiently a problem gets solved. Data structures determine how information is organized and retrieved. System architecture determines how everything fits together at scale. Loops are one of the places where that leverage is easily visible, which makes them a good and fairly accessible pattern to learn (a lot started clicking for me once I understood loops).<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><p>Understanding what the loop is iterating over, what it&#8217;s doing on each pass, and when it should stop gives you a concrete thing to check before running AI-generated code on real data.</p><div><hr></div><h2>What&#8217;s in a loop</h2><p>A loop is just an instruction that says: <strong>do this thing repeatedly until a condition is met.</strong></p><p>That&#8217;s it. But don&#8217;t mistake it with a fruit loop. That&#8217;s something else.</p><p>The reason loops exist in code is the same reason they exist in real life: you often need to do the same action many times, to many items.</p><p><strong>A real-life loop you already run</strong></p><blockquote><p><em>For every item on my grocery list, check if it&#8217;s in the cart. If not, add it. Once I&#8217;ve checked everything, stop.</em></p></blockquote><p>That&#8217;s exactly what a loop does in code. It has:</p><ul><li><p>A <strong>collection of things</strong> to work through (the grocery list)</p></li><li><p>An <strong>action</strong> to take (check and add)</p></li><li><p>A <strong>stopping condition</strong> (when all items are checked)</p></li></ul><div><hr></div><h2>How to read a loop when you see one</h2><p>You don&#8217;t need to understand every symbol, but make sure you ask four questions:</p><ol><li><p><strong>What is it looping over?</strong> (A list? A number range? A condition?)</p></li><li><p><strong>What action is it taking on each pass?</strong> (Sending something? Calculating something? Filtering something?)</p></li><li><p><strong>When does it stop?</strong> (When the list is exhausted? When a condition flips? After <em>N</em> times?)</p></li><li><p><strong>Does the output go somewhere?</strong> (Is it saving to a database? Printing? Building a new list?)</p></li></ol><p>If you can answer those four questions, you understand the loop and you can start seeing the role it plays within the larger system.</p><div><hr></div><h2>The three core patterns</h2><p>There are dozens of variations, but almost every loop you&#8217;ll encounter in the real world is a version of these three patterns.</p><div><hr></div><h3>Pattern 1: the for loop (&#8220;do this for each item&#8221;) </h3><p>This is the most common loop you&#8217;ll see. You have a list of things, and you want to do something to each one.</p><p><strong>The idea</strong></p><blockquote><p><em>For every customer in our database, send them a welcome email.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;7b349f2b-fc82-47c5-8ad3-4a2e0ebe28e1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">customers = ["Alice", "Bob", "Camille"]

for customer in customers:
    send_email(customer)
</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;dbc8db34-fe2b-4c64-bd52-2c25a46865cd&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">const customers = ["Alice", "Bob", "Camille"];

for (const customer of customers) {
  sendEmail(customer);
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;d6826e97-6975-4645-9d03-a7aaabdac208&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">customers = ["Alice", "Bob", "Camille"]

customers.each do |customer|
  send_email(customer)
end</code></pre></div><p>In <strong>SQL</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;a312dc82-0402-40ca-a85a-9b71d1bf217c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">UPDATE customers SET welcome_email_sent = TRUE;</code></pre></div><p><strong>What to notice</strong> </p><ul><li><p>All three say the same thing, just with slightly different syntax. </p></li><li><p>There&#8217;s a list. There&#8217;s a name for each item as you move through it. There&#8217;s an action. </p></li><li><p>The loop handles the repetition automatically. You don&#8217;t write sendEmail("Alice"), then sendEmail("Bob"), then sendEmail("Camille"). You write the action once and let the loop apply it to every item in the list that you defined at the top.</p></li><li><p>For SQL, the pattern is implicit. Rather than writing &#8220;for each customer, do X&#8221;, you describe the action and SQL applies it to every matching row automatically.</p></li></ul><p>This matters enormously at scale. The same code that sends 3 emails sends 3,000,000. You don&#8217;t change anything.</p><div><hr></div><h3>Pattern 2: the while loop (&#8220;keep doing this until something changes&#8221;) </h3><p>This pattern runs as long as a condition remains true. You don&#8217;t necessarily need to know in advance how many times it will run.</p><p><strong>The idea</strong></p><blockquote><p><em>While there are still support tickets in the queue, assign the next one to an available agent.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;457b7254-fcf2-46d1-b2fa-9b19e05b6924&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">while tickets_in_queue &gt; 0:
    assign_ticket_to_agent()</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;d94a88c6-b793-431c-a7ad-8284862bcfd1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">while (ticketsInQueue &gt; 0) {
  assignTicketToAgent();
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;b3f3d368-3d80-4104-a9f1-3f20fd3357c0&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">while tickets_in_queue &gt; 0
  assign_ticket_to_agent
end</code></pre></div><p>In <strong>SQL</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;8ac5e3f8-6b7e-486d-b420-4eca3a24f5a4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">WHILE (SELECT COUNT(*) FROM tickets WHERE status = 'open') &gt; 0
BEGIN
    EXEC assign_ticket_to_agent;
END</code></pre></div><p><strong>What to notice</strong></p><ul><li><p>The loop doesn&#8217;t know when it will stop. That depends on the data. It keeps checking the condition (tickets_in_queue &gt; 0) at the top of each cycle. Once that becomes false (the queue empties), it stops.</p></li><li><p>This is the pattern behind many real-time systems like processing orders as they arrive, monitoring for alerts or refreshing a live dashboard.</p></li><li><p>SQL does have an explicit WHILE loop in this example, but it lives inside a stored procedure (a block of logic saved directly in the database). The data engineer could make other implementation decisions but that&#8217;s beyond the scope of this essay.</p></li></ul><p><strong>One thing to watch for:</strong> If the stopping condition never becomes false, you get an <em>infinite loop</em>. The code runs forever and nothing else can happen. Yikes! Careful not to prompt your AI agent into one of these bad boys.</p><div><hr></div><h3>Pattern 3: the counted loop (&#8220;do this a specific number of times&#8221;)</h3><p>Sometimes you don&#8217;t have a list, and you don&#8217;t have a changing condition. You just need something done exactly <em>N</em> number of times.</p><p><strong>The idea</strong></p><blockquote><p><em>Send 5 reminder notifications over 5 days.</em></p></blockquote><p>In <strong>Python</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;4ef7ede8-307e-4e5d-9714-176fd8fd493a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">for i in range(5):
    send_reminder()</code></pre></div><p>In <strong>JavaScript</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;javascript&quot;,&quot;nodeId&quot;:&quot;d876413a-4f70-403b-80a5-c3f323b49790&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-javascript">for (let i = 0; i &lt; 5; i++) {
  sendReminder();
}</code></pre></div><p>In <strong>Ruby</strong></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;ruby&quot;,&quot;nodeId&quot;:&quot;825bc476-02c0-49fa-bd10-4beb36646957&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-ruby">5.times do
  send_reminder
end</code></pre></div><p><strong>What to notice</strong></p><ul><li><p>Python and Ruby are more readable here.</p></li><li><p>JavaScript&#8217;s version (let i = 0; i &lt; 5; i++) is more complex at first glance. Don&#8217;t worry, the meaning is <em>start at zero, keep going while less than five, add one each time</em>. It runs exactly five times.</p></li><li><p>In SQL, there&#8217;s no clean equivalent for running something exactly <em>N</em> times (and the SQL community would largely prefer you didn&#8217;t try). Databases are optimized to operate on entire sets of data at once, so the language is designed to discourage you from thinking row by row at all. Most loops should be outsourced to other languages instead.</p></li></ul><div><hr></div><h2>What changes between languages</h2><p>You may have noticed that the same idea looks different across Python, JavaScript, Ruby, and SQL. That&#8217;s a design decision in the language itself (if you&#8217;ve been reading my posts for a little while, you&#8217;ll know I never miss a moment to harp on about how everything is a design decision&#8230; and this is one of them). Different languages make different tradeoffs between readability, precision, and expressiveness.</p><p>For example, Python is very readable and closer to plain English. JavaScript is verbose but explicit. The way you write the code tells you exactly what the function is doing. Ruby prose is elegant and expressive. Poetry? Maybe. In SQL, code is declarative and set-based. The loop is usually hidden or not present.</p><p>But the concept of a loop is the same across all of them (generally speaking). What changes is the specific words, brackets, and punctuation the language uses. When AI generates code in any of these languages, it&#8217;s translating the same underlying logic into different syntax.</p><div><hr></div><h2>A quick mental model to take away</h2><p>Let&#8217;s go back to the grocery list for a moment: </p><ul><li><p>The <strong>for loop</strong> is you working through the list top to bottom: for each item, check if it&#8217;s in the cart, add it if not. The list determines how many times it runs.</p></li><li><p>The <strong>while loop</strong> is you realizing your partner is texting you their half of the list one thing at a time, and you don&#8217;t know how many items are on it. You keep going (check item, add item) <em>while</em> there&#8217;s still texts coming in. You don&#8217;t know when you&#8217;ll stop until you get there.</p></li><li><p>The<strong> counted loop</strong> is you deciding you only have time for five items before you need to leave. You count as you go. After five, you stop, regardless of what&#8217;s left on the list.</p></li></ul><p>Every loop in every language is some version of that.</p><div><hr></div><p><em>Want to go deeper? The next concept worth learning alongside loops is <strong>conditionals</strong>. Those are the </em>&#8216;if/else&#8217;<em> statements that often live inside loops and decide what to do with each item. Together, loops and conditionals cover a surprising amount of what code actually does. </em></p><p><em>I&#8217;m not going to cover these today but I might in the future. So check back in soon. In the meantime, happy thinking!</em></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>In this guide, I&#8217;ll show you examples in four common languages: Python (data science, AI, automation), Javascript ( web browsers, frontend, apps), Ruby (backends, developer tools), and SQL (databases, data analysis). I left languages like Java, C#, and React (etc) out because in all honesty, I don&#8217;t know them, I&#8217;ve never studied them, and most AI-generated code will spit out the four ones above (for the most part).</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Excellence boils down to this: what we learned in one month of Animacy]]></title><description><![CDATA[Animacy turns one month! Here's what we've learned about excellence, and where we're going]]></description><link>https://www.eveblou.com/p/excellence-boils-down-to-this</link><guid isPermaLink="false">https://www.eveblou.com/p/excellence-boils-down-to-this</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 26 Jun 2026 13:10:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!iSg0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Animacy turns one month! And what a journey it&#8217;s already been. Thank you for coming along for the ride.</p><p>I started writing in late May 2026 with a desire to share where I&#8217;m at in my own journey. Because I don&#8217;t live in one box. I thrive between worlds. And I believe that this is a superpower. One that I want to share with you.</p><p>That&#8217;s how Animacy was born. To define this unique intersection I find myself in: the psychology of what makes humans exceptional, applied to real people, teams and systems, through the lens of design and product building. The pursuit of becoming across all angles: </p><ul><li><p>Why do some people keep growing while others plateau, even with the same talent and opportunities?</p></li><li><p>What makes certain people and teams exceptional, and how do we find them?</p></li><li><p>How do the stories we construct about ourselves shape what we&#8217;re actually capable of?</p></li><li><p>What does it mean to design for people when most of what drives them is invisible?</p></li></ul><p>In today&#8217;s essay, I&#8217;m going to walk you through the mind map connecting Animacy&#8217;s core mission to what we&#8217;ve discovered and learned so far.</p><div><hr></div><h3><strong>What is excellence?</strong></h3><p>My posts are all pointing to the same core. Strip away the domain. Strip away whether it&#8217;s an individual, a team, a system, or a prototype. The premise is the same: </p><p>Excellence = someone or something oriented <em>toward</em> a vision of what doesn&#8217;t exist yet, and striving to bring it to life. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iSg0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iSg0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iSg0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg" width="3462" height="2022" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2022,&quot;width&quot;:3462,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:713943,&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://www.eveblou.com/i/203476109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3449883-f5cc-4226-ab05-91564bd9a87c_3462x2160.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_!iSg0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iSg0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe94055af-de2d-4a08-9cd0-3b2cb9683bcb_3462x2022.jpeg 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 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"><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"><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 become excellent, the top performer works through the tension of a future self not yet reached. The organization moves towards a desired architecture not yet formed. The designer holds a preferred situation not yet built. The person in a challenge state is oriented toward finding out what they&#8217;re capable of. Mastery orientation is curiosity about an edge not yet reached.</p><p>Which means that the opposite of excellence isn&#8217;t complacency. It&#8217;s an over-rotation toward the past. </p><p>We snap back to our old behaviors when we try to change because our current patterns of self are predictable. A team defends what they already produce so they can keep doing the same thing that works. People build on inherited assumptions instead of first principles because if it already exists, no need to rethink it. This is unfortunately the default stance because it makes the world feel predictable, and that gives people an illusion of safety. I believe that every system, left alone, drifts back to this maximum probability. </p><p>Excellence is the conscious choice to orient the other way.</p><p>That&#8217;s the journey we&#8217;re on at Animacy. We&#8217;re outliers. Moving through the tension, away from the mean and toward a clearer vision of what is yet to be. </p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>What have we discovered so far?</h3><p><strong>1. Engagement: how people move through ambiguity</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Trws!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Trws!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Trws!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Trws!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Trws!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Trws!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg" width="586" height="216.93269230769232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:539,&quot;width&quot;:1456,&quot;resizeWidth&quot;:586,&quot;bytes&quot;:209103,&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://www.eveblou.com/i/203476109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.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_!Trws!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Trws!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Trws!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Trws!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85362201-cf78-4456-9d13-26fba3377b8c_2284x846.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The people who perform well in undefined, fast-moving situations don&#8217;t hold a shape (expert, generalist, T-shaped). They have a signature of motion. Credentials measure the knowledge someone has accumulated. Motion reveals how someone behaves when there&#8217;s no structure, no clear direction, and no one asking them to step up.</p><p>Three patterns show up consistently. Some people compress ambiguity into something others can react to, and their sense of self isn&#8217;t riding on whether that thing is good. Others reframe problems through the quality of their questions, not the certainty of their answers. And some become gravitational centers. They add the kind of friction that organizes rather than destabilizes</p><p>. These people are not necessarily the loudest or most senior. </p><p><strong>How to observe it</strong></p><ul><li><p>When something feels stuck, ask yourself, who would move first if there were no meeting, no agenda, and no one asking<em>?</em></p></li><li><p>Who makes the imperfect thing before anyone&#8217;s agreed on what to make? </p></li><li><p>Who reframes problems and gets teams to climb the right mountain?</p></li><li><p>Whose presence makes the group feel organized and coherent? </p></li></ul><p><strong>Dive deeper</strong></p><ul><li><p><a href="https://www.eveblou.com/p/what-the-org-chart-cant-see-the-new">What the org chart can&#8217;t see: The new physics of talent</a></p></li><li><p><a href="https://www.eveblou.com/p/built-for-ambiguity-are-these-the">Built for ambiguity: are these the people the AI era needs?</a></p></li><li><p><a href="https://www.eveblou.com/p/what-i-learned-by-simulating-fake">Computer simulation: the people that will succeed in the AI era</a></p></li></ul><div><hr></div><p><strong>2. Meaning: getting energy from challenges</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_!Gd3X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gd3X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gd3X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg" width="508" height="248.19749447310244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:1357,&quot;resizeWidth&quot;:508,&quot;bytes&quot;:106682,&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://www.eveblou.com/i/203476109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.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_!Gd3X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gd3X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa80e6c4e-8166-415c-bc8b-bbfd3cfb6cc8_1357x663.jpeg 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 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"><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"><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>When there&#8217;s a challenge, two interpretations are always available: &#8220;this is hard because I&#8217;m becoming something. I&#8217;m getting closer to the vision I have in mind&#8221; or &#8220;this is hard because I shouldn&#8217;t be here.&#8221; Which one is driving a person, a team, a work culture tells you almost everything about their orientation toward the future. </p><p>One is self-referenced: are you better than you were? Are you closer to the edge of what you&#8217;re capable of? This mastery orientation tends to come from genuine curiosity about your own potential. Ego orientation is other-referenced: are you better than them? Did you win, did you place, did you look good in comparison? One leads to growth, the other to frustration, anxiety, and disengagement. </p><p><strong>How to observe it</strong></p><ul><li><p>Watch what happens in the first few minutes after something doesn&#8217;t work: does the person get curious about the problem, or do they start attributing blame?</p></li><li><p>When they&#8217;re wrong or fail, do they tackle the problem again from different angles? Are they genuinely curious about how they can get better?</p></li><li><p>Do they get more energized or defensive as the problem gets harder? </p></li></ul><p><strong>Dive deeper</strong></p><ul><li><p><a href="https://www.eveblou.com/p/the-pursuit-of-becoming-what-the">This is how top performers think</a></p></li></ul><div><hr></div><p><strong>3. Design: ask before you build</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_!qUK-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qUK-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qUK-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg" width="366" height="265.6644844517185" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:887,&quot;width&quot;:1222,&quot;resizeWidth&quot;:366,&quot;bytes&quot;:142464,&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://www.eveblou.com/i/203476109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09e7eee-4fd6-482e-9cf1-7c8aed6bb6fc_1222x1162.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_!qUK-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qUK-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F518160ba-71dc-42cb-8a5f-cca1fd9f4c0e_1222x887.jpeg 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 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"><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"><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>Most things get built on inherited assumptions. What a product should do, how a team should be structured, what a process is for. But true design is the act of changing existing situations into preferred ones. Not continuously adding on to what already exists, just because it exists. </p><p>Go back to first principles and make your vision of the future more clear. From there, build the smallest thing that tests whether your assumptions are right. Not a prototype of the final product, but something that reveals how the pieces of the system actually interact. What you discover by tinkering from that framing is almost always different from what you assumed at the start. And it&#8217;s likely more simple too.</p><p><strong>How to observe it</strong></p><ul><li><p>What is this thing made of, at its most basic level? </p></li><li><p>What does the person using it actually need? Not what they say they want, or how they&#8217;ve been using it in the past. But what they&#8217;re trying to do. </p></li><li><p>What does success look like from their perspective, not yours? </p></li><li><p>What actually stands between the current situation and the preferred one? </p></li></ul><p><strong>Dive deeper</strong></p><ul><li><p><a href="https://www.eveblou.com/p/why-building-agents-is-a-design-problem">Designing a self-reflecting agent</a></p></li><li><p><a href="https://www.eveblou.com/p/what-i-learned-by-simulating-fake">Computer simulation: the people that will succeed in the AI era</a></p></li></ul><div><hr></div><p><strong>4. Growth: the pursuit of becoming</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I_sx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I_sx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I_sx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg" width="546" height="187.98269896193773" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:597,&quot;width&quot;:1734,&quot;resizeWidth&quot;:546,&quot;bytes&quot;:107326,&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://www.eveblou.com/i/203476109?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e28ba66-d570-4784-8ae0-033cff75a5ab_1734x649.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_!I_sx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I_sx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b0f30a-b4ff-4c57-be3e-df00776fab5b_1734x597.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The people, teams, and systems that exude excellence all have this in common: their <em>identity</em> is tethered to a vivid vision of the future. For a person, that means the gap between who they are now and who they&#8217;re becoming stops feeling threatening and starts becoming fuel. For a team, it means the work is in service of something they&#8217;re building toward, not what they&#8217;ve always done. </p><p>This identity can get fragmented when external expectations get tangled with a system&#8217;s internal values. When this happens, a person can&#8217;t access what they know under pressure because the anxiety of having to live up to others&#8217; expectations takes over. A team that stops thinking clearly when stakes go up, because they&#8217;re building from someone else&#8217;s definition of success. A product loses coherence because it was built to do everything for everyone, and ends up being useful for no one.  </p><p>To prevent that fragmentation, identity has to widen to include <em>additional</em> possibilities. Not as a replacement for the original vision, but alongside it, so that the external threat occupies a much smaller part of identity. This makes the system more adaptable and resilient. </p><p><strong>How to observe it</strong></p><ul><li><p>Where is pressure highest right now? Is the person, team, or system under that pressure still oriented toward a clear vision of what it&#8217;s becoming, or trying to incorporate too many external expectations and assumptions?</p></li><li><p>Can you describe the future state specifically enough that you'd recognize it if you arrived?</p></li><li><p> What would you have to let go of to get to your desired state?</p></li></ul><p><strong>Dive deeper</strong></p><ul><li><p><a href="https://www.eveblou.com/p/the-pursuit-of-becoming-what-the">This is how top performers think</a></p></li></ul><div><hr></div><h3>We&#8217;re just getting started</h3><p>When I look at this map, I see the very beginning of an epic adventure. Each branch is a new land to discover, and each node is material to build from. </p><p>And through the act of writing (and reading), we now have language for each piece. And language is key. We can&#8217;t optimize for what we can&#8217;t see. And we can&#8217;t design for what we can&#8217;t name.</p><p>This month gave us clarity. Now pick up your bags, let&#8217;s keep thinking. </p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[This is how top performers think ]]></title><description><![CDATA[How you imagine the future, perceive challenges, and get curious about the process can make a major difference in your performance.]]></description><link>https://www.eveblou.com/p/the-pursuit-of-becoming-what-the</link><guid isPermaLink="false">https://www.eveblou.com/p/the-pursuit-of-becoming-what-the</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 19 Jun 2026 11:10:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TUVW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I fell in love with psychology because of sports.</p><p>Soccer to be exact. When I was in junior and high school, this sport was my whole life. I trained and trained and built the speed and skill that got me on a U18 travel team when I was 15 years old. I spent the winters playing in indoor leagues, the spring training in camps, and the summers traveling around a 5-hour radius from my house. It was everything to me, until it wasn&#8217;t.</p><p>I hit a breaking point where I just couldn&#8217;t take the pressure anymore. I was trying to keep my grades up to qualify for university scholarships, and I didn&#8217;t believe I&#8217;d be able to excel at school and play competitively. I didn&#8217;t believe it. So I stopped.</p><p>When I got to university, I kept thinking about how my performance and potential were just a fabrication of my own mind. I couldn&#8217;t shake it off. I had to understand what excellence was and test its edges. So I switched my major to psychology and started volunteering in a sports performance lab.</p><p>To this day, I&#8217;m still fascinated by the psychology of champions. By people that are not just top performers in their fields, but have <em>redefined</em> them over and over again. </p><p>I think we have a lot to learn from them. Not that they&#8217;re perfect, but because they are a template for us. A permission to go all in and be relentless in our <em>pursuit of becoming.</em></p><div><hr></div><h3>What&#8217;s identity got to do with it</h3><p>Before I break down the psychological components that elevate champions to a league of their own, I&#8217;m going to bring us way back to how identity forms and evolves for most people. </p><p> It&#8217;s from that foundation that I&#8217;ll break down the champion&#8217;s mind:</p><ul><li><p>vivid imagination of possible selves</p></li><li><p>unwavering connection to that future self</p></li><li><p>ability to get energy vs disengagement from the present-future self gap</p></li><li><p>genuine curiosity towards becoming versus performing or being praised</p></li><li><p>ability to create meaning from challenges and discomfort</p></li></ul><p>I&#8217;ll also talk about what happens when that identity fragments. When people&#8217;s expectations, the pressure to succeed, sponsors, fans etc., starts to seep into who the champion believes they are, and how to overcome that part and get back to authenticity.</p><p>Then I&#8217;ll close it out with some takeaways. I&#8217;ll highlight what you can integrate into your own life, so that you can find more joy and meaning from the pursuit of becoming as well.  </p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3>We manipulate the world to match who we think we are</h3><p>Identity is formed in early life. We learn about ourselves through experiences and the feedback we get from our environment and the people around us. With time, this feedback loop gets integrated into our subconscious and becomes our identity. Who we <em>believe</em> we are. The voice inside our head. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OdlU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OdlU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OdlU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg" width="442" height="384.326209223847" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1546,&quot;width&quot;:1778,&quot;resizeWidth&quot;:442,&quot;bytes&quot;:285898,&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://www.eveblou.com/i/201914288?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8412fac4-9327-4553-8d4e-fa8e481dda62_1778x1546.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_!OdlU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OdlU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe081a930-3252-4882-b4bf-a4025fc165a2_1778x1546.jpeg 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 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"><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"><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><figcaption class="image-caption">Identity is more complex than this, but this simplification is good enough for what we need to understand today</figcaption></figure></div><p>And our psyche goes through a lot of trouble to keep that belief intact. According to identity control theory, our identity becomes our standard. Our main reference point. When we get incoming feedback from the world, we compare it against that standard. When the feedback matches, nothing needs to change. But when it doesn&#8217;t, we feel an uncomfortable tension. And to make that tension go away, we actually try to bring the environment back into line with <em>our</em> standard, not vice versa. </p><p>That&#8217;s right, for most people, our goal is to manipulate the external world to <em>match</em> who we think we are. We will actively seek out relationships, environments, and activities that <em>confirm</em> our existing identity because it matches predictable patterns. It&#8217;s more comfortable. And that&#8217;s a safer bet than being faced with the unknown. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eTEO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eTEO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eTEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg" width="604" height="308.60865139949107" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1004,&quot;width&quot;:1965,&quot;resizeWidth&quot;:604,&quot;bytes&quot;:204860,&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://www.eveblou.com/i/201914288?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7a4835e-fc03-43d7-bd26-fef37da74f16_1965x1004.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_!eTEO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eTEO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa78282c0-f25c-4088-a727-800feedfa033_1965x1004.jpeg 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 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"><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"><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><figcaption class="image-caption">We manipulate the environment to match what we believe about ourselves</figcaption></figure></div><p>Of course, it&#8217;s also normal for people to <em>want</em> to change. We have will, and for many of us, a desire to grow. </p><div><hr></div><h3>Imagine all the possible&#8230;selves</h3><p>Humans have the wonderful ability to imagine. And it turns out that in our imagination, we think about ourselves&#8230; a lot. Sometimes we think about past selves, or present selves. But it&#8217;s also common to imagine who we want to become in the future. Researchers call these <em>possible selves</em>. </p><p>Because the possible self is oriented toward a future that doesn&#8217;t exist yet, it produces a tension in the psyche and activates that identity loop I talked about earlier. But this time, the gap isn&#8217;t about resolving the tension between identity and the environment. It&#8217;s about resolving the tension between who a person thinks they are now, and who they desire to become in 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_!TUVW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TUVW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TUVW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg" width="556" height="305.31627430910953" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1073,&quot;width&quot;:1954,&quot;resizeWidth&quot;:556,&quot;bytes&quot;:250728,&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://www.eveblou.com/i/201914288?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f793e23-af81-4c67-8919-9afc10031d4d_1954x1073.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_!TUVW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TUVW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facaa4e4c-6566-4a1f-92bf-a9ed39b26a82_1954x1073.jpeg 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 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"><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"><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><figcaption class="image-caption">We take action to reduce the gap between present and future selves, or we abandon the possible self altogether</figcaption></figure></div><p>For most of us, we&#8217;re like an elastic band. We get inspired and use our imagination to stretch into a possible self that represents who we want to grow into. But our identity feedback loop uses our behaviors against us. Unconsciously too, which is even more frustrating. We act out of habit with our current self and the elastic snaps back. We continue in our comfortable, predictable pattern of self. </p><p>But growth <em>is</em> possible. </p><div><hr></div><h3>Use the tension for energy, or you&#8217;ll snap back</h3><p>Enter <em>Mental contrasting</em>. It describes the cognitive process where a person deliberately holds the desired future in mind first, and then consciously <em>confronts </em>the present reality that stands between here and there. </p><p>But whether mental contrasting leads to new behaviors and then change, <em>depends on what you expect</em>. Our minds have a lot of power, don&#8217;t they? </p><p>If you have a high expectation of actually reaching the possible self, contrasting produces measurable<em> energization</em>. Increased effort, increased readiness to act, even physiological activation. But if your expectation is low, the same act of contrasting produces the opposite: <em>disengagement</em>. And that&#8217;s a motivation killer. Knock out. You snap back to your current self.</p><p>So if that possible self feels real and attainable, and you can hold that tension in your mind even when you current identity is yelling at you to stop, you might get energy and motivation to act, and to keep acting, until you&#8217;ve become that possible self. Until you have successfully manifested who you <em>expect to become</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_!WF0U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WF0U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WF0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg" width="2468" height="1788" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1788,&quot;width&quot;:2468,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:972086,&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://www.eveblou.com/i/201914288?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F189b33bc-4e78-4665-95a6-60e3e08e85c5_2468x1788.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_!WF0U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WF0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F982d71ac-5d3c-4ade-bca3-56143c9348b0_2468x1788.jpeg 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 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"><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"><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><figcaption class="image-caption">I just started learning how to play chess, so lets pretend these pieces are you now, and possible you in the future</figcaption></figure></div><p>For most people, most of the time, imagining possible selves doesn&#8217;t lead to energization. It actually leads to disengagement and even indulgence. We enjoy the image of who we could become, without confronting what stands in the way to actually get there. </p><div><hr></div><h3>Champions <em>are </em>their future selves </h3><p>I think champions are the opposite. They are masters at getting energy from that tension. And that battle happens fully in the mind. </p><div><hr></div><blockquote><p>&#8220;I admire the mental aspect of sport more than the physical aspect, because physical performance is much easier to practice than mental performance.&#8221; &#8212; Rafael Nadal</p></blockquote><div><hr></div><p>And I don&#8217;t think champions just imagine their possible selves doing causal, daily tasks either. Their possible selves are shattering the ceiling of what is possible in their sport. That takes imagination. Not just a little bit either, because most of the things they have to imagine haven&#8217;t happened yet, ever (think breaking multiple records or inventing new techniques). They have to believe in that unrealistic possibility so intensely that most people would feel delusional doing that. </p><div><hr></div><blockquote><p>"I always believe I can beat the best, achieve the best. I always see myself in the top position" &#8212; Serena Williams</p></blockquote><div><hr></div><p>So what gets champions to feel such a strong connection to their possible self? What gets them to sustain that connection through challenges, setbacks, and failures, when most of us would just snap back to our old self? </p><p>Well, I don&#8217;t think they&#8217;re <em>just</em> imaging future self. That self is part of their identity. They actually <em>are</em> that future person. </p><p>Psychologist Hal Hershfield&#8217;s research on future self-continuity gives this a measurable shape. His research found that people who perceived future self as less similar than them, with less detail, and less favorably described their future self how they&#8217;d describe a stranger. </p><p>And it&#8217;s what a lot of people experience. They imagine a possible self they&#8217;d like to become, but that image is dull, it doesn&#8217;t feel real, and there&#8217;s no connection there. So it doesn&#8217;t matter if they skip the gym today, they don&#8217;t really care what happens to that person six months down the line. They&#8217;re so far away. It&#8217;s much easier to snap back to old habits.</p><p>But champions stay tethered to the future. My collaborator Tim Pychyl and I extended this research and found that people who could imagine their future self more vividly, and who were able to feel empathy for them, actually felt more similar and connected to them. That self felt more real. More like a part of the person&#8217;s identity. And when that future person is you, it becomes much harder to let them down when things get tough. That&#8217;s true of champions.</p><div><hr></div><blockquote><p>"Every single day I wake up and commit myself to becoming a better player." &#8212; Mia Hamm </p></blockquote><div><hr></div><h2>I become therefore I am</h2><p>What&#8217;s even more interesting about champions&#8217; minds is that even though they feel an intense connection to a possible self that is quite literally the best, that exudes peak performance and excellence, their current self doesn&#8217;t focus on the potential glory and praise that would come with elite achievements. They don&#8217;t indulge. They actually reject the exact label I&#8217;ve been sticking on them throughout this essay. They don&#8217;t see the final destination as: I am a champion. Their destination is about <em>becoming</em> the champion. And that reframe makes all the difference.</p><div><hr></div><blockquote><p>&#8220;I&#8217;m more of a competitor than a winner, to be honest... If I compete, I feel good.&#8221; &#8212; Rafael Nadal </p></blockquote><div><hr></div><p>Psychologists studying achievement motivation distinguish between two ways people define success for themselves. One is self-referenced: are you better than you were? Are you closer to the edge of what you&#8217;re capable of? This orientation tends to come from genuine curiosity about your own potential. Researchers call this <em>mastery orientation</em>, and it&#8217;s linked to better performance and more sustainable motivation. </p><div><hr></div><blockquote><p>&#8220;I feel an endless need to learn, to improve, to evolve, not only to please the coach and the fans, but also to feel satisfied with myself. It is my conviction that there are no limits to learning.&#8221; &#8212; Christiano Ronaldo</p></blockquote><div><hr></div><p>The other type of motivation is other-referenced: are you better than them? Did you win, did you place, did you look good in comparison? This is <em>ego orientation</em>, and when it dominates, a loss doesn&#8217;t just feel disappointing. It can lead to anxiety, frustration, and in some athletes, giving up on the sport altogether.</p><p>A future self anchored in curiosity about your own edges has permanent high expectancy, because curiosity doesn&#8217;t require winning to be satisfied, it just requires <em>finding out </em>what you&#8217;re capable of. That identity will keep you energized&#8230; forever. </p><div><hr></div><blockquote><p>&#8220;A successful competition for me is always going out there and putting 100 percent into whatever I&#8217;m doing. It&#8217;s not always winning.&#8221; &#8212; Simone Biles</p></blockquote><div><hr></div><p>But a future self anchored in glory depends on outcomes you can&#8217;t fully control, including what other people decide to think of you. It&#8217;s easy to lose yourself in that and forget why you&#8217;re putting yourself through all these challenges in the first place.</p><p>And challenges are a big part of it. It&#8217;s the toil that creates meaningful change. It might sound cheesy, but you truly can&#8217;t grow without it. And you certainly can&#8217;t make a champion. </p><div><hr></div><h2>Challenges fuel the fire, or put it out</h2><p>Most (if not all) of peak performance is a product of the invisible, daily work that makes the vision real rather than aspirational. And nobody is watching that part. No one is cheering or spraying champagne. But it&#8217;s where change actually happens. You can&#8217;t skip it. </p><div><hr></div><blockquote><p>&#8220;The vision of a champion is bent over, drenched in sweat, at the point of exhaustion, when nobody else is looking.&#8221; &#8212; Mia Hamm</p></blockquote><div><hr></div><p>So how do champions keep showing up day in and day out without compromise? Well, I don&#8217;t think they just <em>tolerate</em> suffering, they actually find meaning inside it. At the level of the body, the same demanding situation can produce one of two physiological states. When the person <em>believes</em> they&#8217;re capable of meeting the challenge, feel in control of the outcome, and their orientation is toward approach (finding out what&#8217;s possible with curiosity) the body responds with a <em>challenge</em> state: increased cardiac output paired with decreased resistance in the blood vessels. A pattern that delivers blood more efficiently to muscle and brain. </p><div><hr></div><blockquote><p>&#8220;There have been a few players who are as naturally gifted as me, but they didn&#8217;t work as hard. I wake up every morning and I know that today I have to be better than yesterday.&#8221; &#8212; Christiano Ronaldo</p></blockquote><div><hr></div><p>When belief is low, or the orientation flips toward avoidance (not failing, not losing, not falling short) and the body produces a <em>threat</em> state instead: cardiac activation without that same drop in vascular resistance, meaning the same physical effort is now being fueled less efficiently.</p><p>This means that the same training session that would exhaust one person can actually energize another. And this isn&#8217;t about sleep, nutrition, or physiology (although those are also important variables). </p><p>This is all in the mind. What a person thinks and expects literally changes the body. So powerful. </p><p>At the level of meaning, a parallel split shows up in how difficulty gets <em>interpreted</em> once a person is already in the challenging situation. The same hard session, the same setback, the same plateau can be read in one of two ways. As confirmation: this is hard because it matters, because this is what becoming who I am is supposed to feel like. Or as disconfirmation: this is hard, and that probably means it isn&#8217;t going to work, maybe this isn&#8217;t for me. </p><div><hr></div><h2>When the vision fragments, it must widen</h2><p>All this put together makes the champion. The possible self as core identity. The energy from the tension of not yet being that self. The curiosity in the process of <em>becoming</em>, not just winning or achieving. The meaning found in difficulty and challenges. </p><p>So far, I&#8217;ve described how a champion sees themselves and challenges from their own perspective. Their own hopes for who they&#8217;re becoming, not anyone else&#8217;s. They are in the driver&#8217;s seat. And that holds true for the most part. </p><p>But what I haven&#8217;t talked about yet are the standards that are set by the external world, and by significant others. Who coaches, fans, family, an entire sport&#8217;s expectations, believe a person <em>should</em> be. And with rising success, &#8216;Who I&#8217;m becoming&#8217; and &#8216;who I&#8217;m not allowed to disappoint&#8217; can start to get entangled. That&#8217;s when a bad performance or a loss is no longer just feedback for the self. It&#8217;s also a gap relative to an obligation. </p><p>Unfortunately these external expectations come with emotions like anxiety and fear, which are, by definition, the emotional signature of the threat state I described earlier: the one with low perceived control and an avoidance orientation. Because the relevant standard is now partly <em>someone else&#8217;s</em> to judge.</p><div><hr></div><blockquote><p>"Probably because I went through a lot of injuries, a lot of pressure, and arrived in a moment where, in some way, you are not able to handle all of this. Even if in my mind I was able to handle all of this. It arrived at a point where your mind fails, and that's what happened." &#8212; Rafael Nadal</p></blockquote><div><hr></div><p>What happens to the body under that signature is mysterious. When you&#8217;re an elite performer, skills become fast, automatic, and run mostly unconsciously. The performer doesn&#8217;t think about each movement, because they&#8217;ve become integrated into a single fluent whole. </p><p>Under threat, however, attention tends to shift toward trying to <em>consciously</em> manage every part of a movement, even if the person can quite literally do it with their eyes closed. Under this kind of pressure, the expert executes more like a novice. The body responds. It can no longer spin. It is lost in space. It can no longer see the ball when it is in the air. The mind has taken over and is blocking the body from accessing all the knowledge it holds in its muscles and nervous system. It is cut off. </p><div><hr></div><blockquote><p>"Literally cannot tell up from down. It's the craziest feeling ever. Not having an inch of control over your body. What's even scarier is since I have no idea where I am in the air I also have NO idea how I'm going to land, or what I'm going to land on. Head/hands/feet/back&#8230;" &#8212; Simone Biles</p></blockquote><div><hr></div><p>To come back from that fragmentation, the champion has to reframe who they are. The all encompassing identity I described earlier is suddenly too narrow. It got them to where they are now, but it isn&#8217;t always what will keep them going. They have to widen their identity to include <em>additional</em> possible selves, in new domains. Not as a replacement for the original future self, but alongside it.</p><div><hr></div><blockquote><p>&#8220;I'm happy that people say I'm special, but I think it refers exclusively to what I do on a bike. I'm lucky to have legs, lungs, and a heart that allow me to do something special on a bike, yes, but outside of that, I'm a very simple guy. In my daily life, I do normal things like everyone else: I cook dinner and lunch, clean the apartment, take care of paperwork, and go to the supermarket." &#8212; Tadej Poga&#269;ar</p></blockquote><div><hr></div><p>This helps because the proportion of the champion&#8217;s identity that is focused on performing in that one specific domain decreases. Other things take up space now. So the sport and all the pressures that come with it, is no longer a threat to the champion&#8217;s entire being. That threat now occupies a much smaller part of identity and with time, might weaken to the point of disappearing altogether. </p><div><hr></div><blockquote><p>&#8220;I&#8217;m more than my accomplishments and gymnastics which I never truly believed before.&#8221; &#8212; Simone Biles</p></blockquote><div><hr></div><h3>So&#8230; what&#8217;s in it for the rest of us?</h3><p>I decided to deconstruct the psychology of champions in sports specifically, because these are the people that inspired me to dig into my own self beliefs and broaden what I thought was possible for myself. </p><p>Maybe your version of champion looks different. Maybe it&#8217;s a mentor, or a parent that has shown up for you through thick and thin. Even then, what I hope to teach you today transcends any specific example. </p><p>I want to show you that your mind is powerful. </p><p>Yes, your identity might feel solid. Set in stone. And it might feel like it is pulling your behaviors back to your old self, over and over again. It might feel like change is impossible or extremely difficult. </p><p>And that&#8217;s ok because now you are aware. And awareness is one of the most useful and versatile psychological tools you could ever want. Your awareness puts you in the drivers seat. I&#8217;m not saying it makes things easy. But it makes it possible to observe yourself from a new angle. And from that vantage point, you can start to play with what we learned today. </p><p>So let&#8217;s try it.</p><p>Imagine a possible self. Who are they? Do you believe it&#8217;s possible to become them? And do they feel like they <em>are</em> you? Or do they feel distant, like a stranger? Start there.</p><p>There&#8217;s also a second question worth asking: <em>why</em> do you want to become that self? If the honest answer involves other people, what they&#8217;d think, how impressed they&#8217;d be, what it would prove, maybe it&#8217;s a sign to dig a little deeper. If no one was around to see you perform or succeed or build a skill, does your vision change? </p><p>Then watch what you do with difficulty, because this is where most people talk themselves out of becoming their possible self. The next time something is hard, pay attention to which story you tell yourself about why. &#8220;This is hard because it matters, because this is what becoming is supposed to feel like&#8221; or &#8220;This is hard, and that probably means it&#8217;s not going to work, maybe this isn&#8217;t for me&#8221;. Just being aware of how you label challenges (especially challenges related to your future goals) can make a major difference.</p><p>And finally, don&#8217;t wait until something breaks to widen who you are. You don&#8217;t need a crisis to have more than one possible self in motion at the same time. The version of you that&#8217;s becoming a writer, a data scientist, a marathon runner, or a foster parent, doesn&#8217;t have to be the only thing you&#8217;re becoming. Let a few future selves exist at once. Not because the big one isn&#8217;t worth all your attention, but because if it&#8217;s the only thing holding you up, a single bad month can take the whole structure down with it. And that elastic band will just snap you back.</p><p>That&#8217;s the value I&#8217;m offering you here. Be aware, hold onto the belief that you can change, and enjoy the becoming.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Computer simulation: the people that will succeed in the AI era]]></title><description><![CDATA[This is what happens when you give a research psychologist a coding environment and a Joshua Epstein quote. I discovered agent-based computational social science and immediately built a simulation.]]></description><link>https://www.eveblou.com/p/what-i-learned-by-simulating-fake</link><guid isPermaLink="false">https://www.eveblou.com/p/what-i-learned-by-simulating-fake</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 12 Jun 2026 12:22:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hvlk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em>&#8220;If you didn&#8217;t grow it, you didn&#8217;t explain it.&#8221;</em></p><p>- Joshua Epstein, Generative Social Science: Studies in agent-based computational modeling</p></blockquote><div><hr></div><p>No, this post isn&#8217;t about Tron. And it isn&#8217;t about the Matrix, even though a part of me wishes it was. But you should have seen the look on my face when I first read that quote from Joshua Epstein. This was a few weeks ago. I was poking around the web for books and research papers on organizations. You know, doing some homework. When I randomly stumbled on the concept of generative computational social science. A mouthful, I know. But what a wonderful mouthful it was.</p><p>You better believe I rabbit holed. Fast. I went deeper than Alice did in Wonderland. How had I never heard of this field? All these years spent dusting off books in the library and surfing Google Scholar like it was the only site on the World Wide Web, and never, not once had this magical concept come my way. I guess I had to become a proper tech nerd first (thanks Shopify). Only then was I ready to receive the insights that would inspire the prototype I&#8217;m about to show you today.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hvlk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hvlk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hvlk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg" width="3745" height="1961" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1961,&quot;width&quot;:3745,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:847898,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F155ca56e-5c8b-42a5-8755-8ea017742464_3745x2389.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_!Hvlk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hvlk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e0a8bea-ccd3-46b8-9893-15b69c674d5f_3745x1961.jpeg 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 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"><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"><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>Of course after the dopamine in my brain subsided, I was left only with the vivid memory of inspiration. This always happens to me. Awe. Fascination. Then, reality. Now what? Where do I even start. I&#8217;ve never simulated something like this before. That&#8217;s ok. I have tools. I have curiosity. I have stubbornness and endurance. And snacks. That&#8217;s always a good place to start. </p><p>Let me be honest with you. My brain loves complexity. I thrive in it. I seek it. That&#8217;s why I&#8217;m obsessed with tackling impossible problems. I studied consciousness and imagination for crying out loud. There are many upsides to this. I don&#8217;t shy away from a challenge. But I can also tend to overengineer, especially when what I&#8217;m working on is ambiguous. </p><p>Over the years, I&#8217;ve come to appreciate the genius of simplicity. It is an art. It is a science. It is everything worth pursuing. But before I can simplify, I have to be messy. I have to play around with the complexity. </p><p>With lots of practice and patience, I became really good at moving fast through the cycle of inspiration &#8594; messy exploration &#8594; complex solution &#8594; simplified solution. But being honest about who I am and how my brain works was key. It unlocked so much confidence for me. I can translate complex ideas and systems into elegant and simple artifacts, solutions, and stories. But I also know to give myself permission to play in the mud first. </p><div class="callout-block" data-callout="true"><p>My goal for today is to play in that mud, but just a little bit. I&#8217;m also writing for you, my dear reader. So I can&#8217;t be too messy. My hope is to give you a peak into how I approach a vague problem, and what I think about when I tinker through it, so that you might gain some insights about your own creativity and way of thinking too. I also hope to teach you a thing or two about computational simulations. But given I don&#8217;t know much about it either, we&#8217;ll have to learn together! </p></div><p>Alright, let&#8217;s simulate some computational people.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>First, a (very) brief overview </h2><p>Generative social science is a way of studying how large, complex social patterns emerge from the small, simple behaviors of individuals. The field traces back to Joshua Epstein and Robert Axtell&#8217;s 1996 book <em><a href="https://direct.mit.edu/books/monograph/2503/Growing-Artificial-SocietiesSocial-Science-from">Growing Artificial Societies</a></em>, which introduced a model called <a href="https://en.wikipedia.org/wiki/Sugarscape">Sugarscape</a>. Their goal was to understand why wealth distribution tends towards inequality within a free society. In their simulation, sugar was the resource.  </p><p>The Sugarscape model starts with agents (not AI, but personas that you program) in a two-dimensional grid environment. Each agent started the simulation with simple rules for how to move, eat, and interact.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><p>The results (over many rounds of simulation) showed that fundamental collective behaviors like group formation, cultural transmission, combat, and trade, had emerged. Nobody programmed those patterns in. They grew. How fascinating! </p><div><hr></div><h2>Which humans should I simulate?</h2><p>Why not test my own thinking? In my <a href="https://www.eveblou.com/p/built-for-ambiguity-are-these-the">last essay</a>, I theorized about three types of people I think are becoming increasingly valuable as organizations change. People I called crystallizers, propagators, and diffusers<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. If you want to know more about their personalities, I suggest you go read that post first. </p><p>The goal of my simulation would (ideally) be pretty simple. Start from the three people I theorized about, and let the organizational patterns emerge from the bottom up. I decided to mimic the Sugarscape &#8216;rules of the game&#8217; as closely as possible, and only add on or shake things up if absolutely necessary. I&#8217;ll go into those details soon. But first&#8230; </p><div><hr></div><h2>Look at my simulation! </h2><p>Yes, I&#8217;m showing you the results of my simulation before I explain my approach. How gauche. Why would I do that? Because I want to hook you in. I know. I&#8217;m revealing all my secrets. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7e749621-3636-4115-8ad8-569a7192c859&quot;,&quot;duration&quot;:null}"></div><p>You can find the HuggingFace simulation <a href="https://huggingface.co/spaces/eveblou/simulating-people-shapes-in-orgs">here</a> (that&#8217;s what I&#8217;m running in the video, can you see my little people moving around?!). You can also find the GitHub repo with all the code <a href="https://github.com/evebloo/simulating-people-shapes-in-orgs">here</a>.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/p/what-i-learned-by-simulating-fake?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/p/what-i-learned-by-simulating-fake?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2>Now, time to break it all down </h2><p>Ok now that you&#8217;re shaking with awe and anticipation, let me get into the really fun stuff. </p><p><strong>The board</strong></p><p>A 20&#215;20 grid. Think of it like a chess board where work problems and people coexist and move around each other. Why 20x20 when Sugarscape had 50x50? My choice wasn&#8217;t an exact science, but I had less total agents than Sugarscape, and only 30 problems. I wanted to start smaller. But not so small that agents would be on top of each other within 5 simulations. A 2:1 agent to problem ratio felt ok enough to try things out.</p><div><hr></div><p><strong>The problems</strong></p><p>I decided on 30 problems and scattered them randomly across the space. Because for this part I literally had no clue. It felt right. No one should start at an advantage. Maybe next simulation, I can program in some penalties and bonuses and such.</p><p>Each problem has a single property that matters: its definition level, which is a number between 0 and 1.</p><ul><li><p>0 = pure formlessness. Nobody has named this yet. There&#8217;s no scope, no brief, no direction. Just a vague sense that something needs to happen.</p></li><li><p>1 = fully defined. The problem has enough shape to be deemed solved (or about to be solved).</p></li></ul><p>Problems start at random definition levels too because like I said, I have zero mental model at this point. I set some problems to be nearly formed, some completely undefined. </p><p>When a problem reaches 1.0, it&#8217;s solved, disappears, and a new one appears in its place starting at (once again) a random definition level, to keep things evened out. </p><div><hr></div><p><strong>The agents</strong></p><p>With 30 problems, I wanted to make sure that agents weren&#8217;t all converging on the same one, but not so few agents that they spent the whole simulation just traveling and rarely interacting. With 15 agents and 30 problems, roughly every agent would have about two problems close to them at any time. That felt like enough variety to create interesting movement. Or so I thought. I don&#8217;t really know.   </p><p>Each agent starts with a random position in the space because no one is at an advantage. They all get a contribution score (how many successful interactions they had), and a counter for how many simulation rounds they spent without making progress (how long since they last contributed).</p><ul><li><p><strong>Crystallizer</strong></p><ul><li><p>Moves toward problems with low definition (&lt; 0.4). When close enough, they raise the definition level by 0.25. </p></li><li><p>That gets them a contribution point of +1, because they were successful in manifesting their purpose, which is to create a bit more clarity.</p></li></ul></li><li><p><strong>Propagator</strong></p><ul><li><p>Their first priority is to move towards any agent that hasn&#8217;t made progress in 5+ rounds of simulation (looks like the proper lingo is &#8216;steps&#8217; for those of you taking notes). </p></li><li><p>When close enough, they reset the other agent&#8217;s stuck counter and frees them up. For that, they get a contribution of +1. </p></li><li><p>If nobody is stuck, they move toward ambiguous problems (0.3&#8211;0.7) and raise their definition by 0.15. They also get a contribution point of +1 for that.</p></li></ul></li><li><p><strong>Diffuser</strong></p><ul><li><p>Moves toward any agent who has been drifting (stuck for 3+ steps). </p></li><li><p>When close enough, they reduce the stuck counters of all nearby agents, so their impact is more widespread than propagators on other agents (they coordinate and create structure across agents). </p></li><li><p>They get a contribution point of +1 per coordination event.</p></li></ul></li></ul><div><hr></div><p><strong>The movement rules</strong></p><p>Each simulation round, every agent scans the space for the nearest target that matches their behavioral profile and moves one step toward it. If they&#8217;re close enough to interact, they interact. If not, they keep moving and their steps-without-progress counter ticks up.</p><p>The order in which agents act each round is randomized too. No agent always goes first. This prevents any single agent from dominating early and keeps the dynamics neutral (which is the reasoning I&#8217;ve been using this whole time, no favorites). </p><div><hr></div><p><strong>The scenarios</strong></p><p>I wanted to have a bit of extra fun and see if different compositions of the same three shapes (15 agents total per scenario so the comparisons are fair) produced different outcomes. </p><ul><li><p><strong>Crystallizer-heavy</strong> (8 crystallizers, 4 propagators, 3 diffusers)</p><ul><li><p>What happens when you load up the environment with people that take ambiguous problems and turn them into form (but don&#8217;t actively seek out to unblock others by asking questions, or create structure for groups of people)? Does the formless backlog disappear, or do you hit diminishing returns?</p></li></ul></li><li><p><strong>Balanced</strong> (5 of each)</p><ul><li><p>The obvious hypothesis and the scenario I was originally going to run by itself. Equal distribution, even playing field, but unrealistic in the real world. </p></li></ul></li><li><p><strong>Propagator-heavy</strong> (3 crystallizers, 8 propagators, 4 diffusers) </p><ul><li><p>What happens when the team is dominated by reframers? Do things move faster, or does formless work just pile up waiting for a crystallizer who isn&#8217;t there?</p></li></ul></li></ul><p>I didn&#8217;t do a diffuser-heavy scenario because I thought 3 was already enough, and diffusers (in my opinion) are likely more rare to come by, so it didn&#8217;t feel very realistic. I&#8217;m also the least certain about how I encoded their behavioral rules, so I want to run a few scenarios first to see what comes out.</p><div><hr></div><p><strong>What the simulation is tracking</strong></p><p>Over 10 simulations of 100 rounds each, I&#8217;m tracking three things to find emerging patterns (if you&#8217;re using my <a href="https://huggingface.co/spaces/eveblou/simulating-people-shapes-in-orgs">HuggingFace interactive simulator</a> though, every time you press &#8216;play&#8217;, that&#8217;s one simulation. You can press it as many times as you want and see where things go. But every simulation is 100 rounds). </p><ul><li><p><strong>Average problem definition</strong></p><ul><li><p>Is the problem space actually transforming? Are formless problems getting shape over time, or is the team spinning in place? This is the primary question.</p></li></ul></li><li><p><strong>Formless backlog</strong></p><ul><li><p>How many undefined problems (definition &lt; 0.3) are sitting untouched for 5+ steps? </p></li><li><p>A low backlog means the team is picking up undefined work as it arrives. A growing backlog means formlessness is accumulating faster than anyone is giving it shape.</p></li></ul></li><li><p><strong>Solved count</strong></p><ul><li><p>How many problems actually reached full definition and crossed the finish line? This is completion. An organization that has low completion isn&#8217;t getting anything done.</p></li></ul></li></ul><div><hr></div><h2>All of the cool things I learned </h2><p><strong>The crystallizer-heavy team was best at reducing ambiguity and solving problems.</strong> With eight crystallizers, the formless backlog stayed the lowest (average of 0.40), and you can see that formlessness gets resolved more quickly earlier on in the rounds (sharp drop by about round 15 or so). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IpbF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IpbF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IpbF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png" width="1184" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:727,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132495,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.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_!IpbF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!IpbF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660190e3-709e-4bc4-9fa4-d36058ebf200_1184x727.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 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"><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"><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>More problems got fully solved than any other scenario (33 on average over 10 runs of 100 rounds). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VhJa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VhJa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VhJa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png" width="1184" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:727,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82353,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.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_!VhJa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!VhJa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3832b475-8bbc-43fd-9b29-d1e128755df2_1184x727.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 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"><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"><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>This makes sense because crystallizers move directly toward undefined problems and raise their definition level more than other agent types. More of them means more ambiguous work gets picked up. The formlessness doesn&#8217;t pile up as fast.</p><p>But here&#8217;s what I didn&#8217;t expect as much: <strong>individual crystallizers contributed </strong><em><strong>less</strong></em><strong> overall in the crystallizer-heavy team </strong>than in the balanced or propagator-heavy one. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Iber!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Iber!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!Iber!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!Iber!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!Iber!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Iber!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png" width="1184" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110880,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.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_!Iber!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!Iber!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!Iber!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!Iber!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84edf9c6-da0e-4a7a-b32f-98476b3f5ce8_1184x731.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 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3VsX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3VsX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3VsX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png" width="1184" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115075,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.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_!3VsX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!3VsX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390424f2-8ce2-414b-bb12-70092e573c97_1184x731.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 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"><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"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O0r2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O0r2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O0r2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png" width="1184" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91695309-ec77-476d-885b-ba6eae88983a_1184x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111933,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.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_!O0r2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 424w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 848w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.png 1272w, https://substackcdn.com/image/fetch/$s_!O0r2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91695309-ec77-476d-885b-ba6eae88983a_1184x731.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 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"><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"><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>When you have eight crystalizers chasing 30 problems, they&#8217;re competing for the same pool of undefined work. They bump into each other. Some of them spend more time in transit than interacting. The team produces more, but each individual crystallizer does less. <strong>Their role has lower leverage as you increase their numbers.</strong></p><p><strong>The propagator-heavy team left the most formless work untouched</strong>, with a backlog of 0.60 on average, 1.5 times the crystallizer-heavy team. <strong>But the problems that </strong><em><strong>did</strong></em><strong> get worked on reached the highest average definition level</strong> (0.78). Although all scenarios were relatively close on this one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jur3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jur3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!jur3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!jur3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!jur3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jur3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png" width="1184" height="727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:727,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102377,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.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_!jur3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 424w, https://substackcdn.com/image/fetch/$s_!jur3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 848w, https://substackcdn.com/image/fetch/$s_!jur3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.png 1272w, https://substackcdn.com/image/fetch/$s_!jur3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10eccf5f-bc8a-405b-866f-dba50e3f568c_1184x727.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 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"><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"><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>This also makes sense. Propagators don&#8217;t seek formless problems. Their first priority is stuck agents. If nobody is stuck, they look for problems that already have a bit of shape. Truly undefined work sits there waiting for a crystallizer who isn&#8217;t there in large enough numbers. <strong>The propagator-heavy team is good at advancing things that are already in motion. It&#8217;s not built to pick up raw formlessness as well.</strong></p><p><strong>The balanced team wasn&#8217;t best at anything. But it was consistently alright across all three.</strong> Second or close on every metric. No single shape could dominate because the mix kept pulling in different directions. Crystallizers giving form, propagators reframing stuck work, diffusers keeping everyone coordinated. </p><p>I&#8217;d be curious to see what a balanced approach might look like over a longer period of time, and with more rules set to simulate a broader spectrum of real-life org challenges. I think other scenarios would eventually get ahead. This balanced scenario just doesn&#8217;t feel productive long-term to me. </p><p><strong>One thing this version also doesn&#8217;t measure is total team output. That would be an interesting next version. </strong>A team-level impact metric that aggregates across all agents and compares total output. Combined with experiments on team composition.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0lii!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0lii!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 424w, https://substackcdn.com/image/fetch/$s_!0lii!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 848w, https://substackcdn.com/image/fetch/$s_!0lii!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 1272w, https://substackcdn.com/image/fetch/$s_!0lii!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0lii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png" width="1456" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:597833,&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://www.eveblou.com/i/201459707?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.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_!0lii!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 424w, https://substackcdn.com/image/fetch/$s_!0lii!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 848w, https://substackcdn.com/image/fetch/$s_!0lii!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.png 1272w, https://substackcdn.com/image/fetch/$s_!0lii!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60978809-4cf0-4842-a3d2-41cd9f4abb01_2984x1476.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 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"><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"><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>Last but not least, there&#8217;s the diffuser. </strong>Across all three compositions, the diffuser accumulated the highest average contribution score. Every scenario. By a meaningful margin in some cases. <strong>I want to be careful about this finding, because I think it&#8217;s at least partly an artifact of how I decided to program the rules</strong>.</p><p><strong>The diffuser was the hardest shape to model.</strong> Their value is ambient and relational. They don&#8217;t raise a problem&#8217;s definition level directly. They don&#8217;t reframe a stuck agent&#8217;s thinking right away. They hold the informal architecture together, and I found that hard to translate into a behavioral rule. The threshold I used to define &#8220;drifting&#8221; (3 steps without progress) might be too low. Agents regularly spend several steps just moving across the space, which would trigger the diffuser even when nobody is genuinely struggling. In other words, <strong>I may have over-counted the diffuser to compensate for the fact that their value is hard to measure. </strong></p><p>What I can say is that the difficulty of encoding the diffuser in a simulation mirrors something real about how their value shows up in organizations.<strong> If I can&#8217;t cleanly measure coordination work in a model, maybe that&#8217;s telling me something about why organizations struggle to see it too. </strong>It&#8217;s real invisible work.</p><div><hr></div><h2>So, what&#8217;s next? </h2><p>Well, I&#8217;m going to start by putting the simulation down because I have other things to do and this is proving to be very immersive. I want to tweak and play with this so much more. I feel similar to how I felt as a researcher. The more I play with the data, the more questions I have, and the more experiments I want to run. And simulations make that feel somewhat &#8216;easy&#8217; because I don&#8217;t have to go collecting data. But the hard part is encoding the metrics in the right way. </p><p>But wow. This is fun, right? I hope you enjoyed this and feel empowered to try your own simulation too! Just try it on anything you have questions about. Start simple and don&#8217;t be afraid to make mistakes. You have my <a href="https://github.com/evebloo">GitHub</a>, go grab the code and modify it for yourself. </p><p>If you read this far, I&#8217;d love to get your thoughts in the comments too. What questions came up for you? </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/p/what-i-learned-by-simulating-fake/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/p/what-i-learned-by-simulating-fake/comments"><span>Leave a comment</span></a></p><p>Happy building! </p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Each location on the grid had a resource capacity from 0 = completely depleted to 4 = fully loaded with sugar. Each agent had a set of attributes (e.g. genetic vision range, metabolic rate) that determined which resource zones they were attracted to. Agents moved toward the richest visible sugar peaks, harvested them, and changed the resource level of that grid cell to 0. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>I initially wanted to also include the <a href="https://www.eveblou.com/i/198832488/the-psychology-of-people-as-shapes">T and I shapes that I talked about in my very first essay</a>. Because I wanted to compare them to the new shapes I created and see how they all interacted. But yes, you know where I&#8217;m going. That was too complex. I was trying to mix two frameworks together without knowing exactly how they actually connect. So the little software engineer on my should told me to simplify my system. Stick to what I&#8217;m actually trying to observe. My new shapes. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>I used <a href="https://github.com/mesa/mesa">Mesa</a>, which is Python&#8217;s open-source framework for agent-based models (ABMs), an alternative to older toolkits (NetLogo, Repast, MASON). You can use it with libraries like NumPy, pandas, Matplotlib, and machine learning environments, which makes it especially versatile. Plus did I mention, open-source? We love open-source software over in this corner of the internet (says I, Eve-Marie, as I type from my Ubuntu-clad computer). </p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Built for ambiguity: are these the people the AI era needs?]]></title><description><![CDATA[The people who will define the AI transition aren't just talented. They're wired differently. You've probably already met them. This is a hypothesis about the psychology beneath the behavior.]]></description><link>https://www.eveblou.com/p/built-for-ambiguity-are-these-the</link><guid isPermaLink="false">https://www.eveblou.com/p/built-for-ambiguity-are-these-the</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 05 Jun 2026 12:31:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Xgsp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><blockquote><p>You can&#8217;t enter a new domain with curiosity if you&#8217;re attached to the expertise you brought in. </p></blockquote><div><hr></div><p>I think deeply. And I get inspired by a lot. By what I read, what I hear, and what I see happening around me. If you&#8217;re reading this essay, you probably do too. </p><p>Right now, I&#8217;m seeing the ground shift at scale, to large structures like organizations and industries. And it&#8217;s becoming hard to ignore my blind spots. I&#8217;m operating on old mental models, and I need to create new ones. That tension is inspiring. It&#8217;s motivating.</p><p>And I feel an increasing sense of responsibility to explore in the open. That&#8217;s why I wrote my first essay on this platform about the <a href="https://www.eveblou.com/p/what-the-org-chart-cant-see-the-new?r=1vftq4&amp;utm_campaign=post-expanded-share&amp;utm_medium=web&amp;triedRedirect=true">new physics of talent</a>. To open up the questions building inside of me and share them with you. Because curiosity is contagious.  </p><div><hr></div><p>In the spirit of exploring, let&#8217;s take this one piece at a time.</p><div class="callout-block" data-callout="true"><p>We&#8217;ve got at least two big puzzles to tackle. One is structural. The organizations and environments that will need to change, and what that change actually demands. </p><p>The other is human. The person, or people, who will make this transition successful. Who are they? What are they made of? And how do we learn to see them with a new set of eyes? </p></div><p>This essay is about the second piece. </p><p>I&#8217;ve <a href="https://scholar.google.ca/citations?user=c5p-HDMAAAAJ&amp;hl=en&amp;oi=ao">spent the good part of a decade studying just this</a>. People. Their personality, their imagination, their potentiality. Optimal performance across all its angles. That&#8217;s the journey I&#8217;ll take you on today. </p><p>First, I&#8217;ll go back to the three patterns of motion I introduced in my last post (crystallization, propagation, diffusion) and open them up. What personality, cognitive and motivational wiring might explain each one? What does the research say? </p><p>Then I&#8217;ll bring each pattern into real life: how to spot each one with new eyes, and the people who might get mistaken for it (what to be careful of).</p><p>Let&#8217;s get cooking.</p><div><hr></div><blockquote><p><em>Stop trying to resolve the tension of being curious about everything in a world that rewards knowing one thing. Create inside it.</em></p><p><em>If you want to build {ideas, businesses, systems, products, yourself}, Animacy is for you.  </em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p></blockquote><div><hr></div><h3><strong>Crystallization</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_!Xgsp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xgsp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xgsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg" width="724" height="467.65320979483784" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1952,&quot;width&quot;:3022,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:1534247,&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://www.eveblou.com/i/200290990?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F140cbb6d-d5d8-405d-9503-fbf94108c929_3022x1952.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_!Xgsp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xgsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca58a36d-6fea-4c07-8b98-c13730ea43af_3022x1952.jpeg 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 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"><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"><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><figcaption class="image-caption">the guy beside me on the train looks concerned for me as I&#8217;m sketching this</figcaption></figure></div><p>In a flat environment where nobody is handing you a defined problem, a clear deadline, or a job description that tells you where to start, raw material is formless. Ambiguous. Possibility without direction. </p><p>A team with high autonomy and no crystallizer can spin in that ambiguity indefinitely, generating energy without ever producing something others can react to. The crystallizer is the person who makes the first move. They are a master at transforming formlessness into structure.</p><p>So who is the crystallizer? Let&#8217;s start by looking at what their personality, cognition, and motivations might be, and see if the persona becomes more clear. </p><div><hr></div><h4>Personality underpinnings</h4><p><strong>Openness to experience: the ideas facet.</strong> </p><p>This trait is about staying curious in the presence of the unknown. It&#8217;s one dimension of the Big Five, the most widely accepted personality framework in modern personality psychology.</p><p>At its atomic level, openness can be broken down into <a href="https://en.wikipedia.org/wiki/Openness_to_experience">six primary facets</a>, but the one I think matters most for the crystallizer is the ideas facet, because it&#8217;s most associated with internal intellectual life. The pleasure of abstract thought, the draw toward complexity, the appetite for ideas that don&#8217;t yet have practical application. People high on this facet are genuinely interested by ambiguity. To them, it&#8217;s something to explore.</p><p>This matters for the crystallizer because making something before the problem is defined requires exactly this orientation. You can't compress formlessness into form if your instinct is to resolve or avoid ambiguity rather than inhabit it. </p><p><strong>Action orientation. </strong></p><p>This trait is about moving from intention to artifact without waiting for clarity. Research found that <a href="https://www.researchgate.net/publication/229629660_A_Theory_of_Self-regulation_Action_versus_State_Orientation_Self-discrimination_and_Some_Applications">action-oriented people</a> initiate action under uncertainty without needing more information, more clarity, or more consensus. State-oriented people on the other hand, ruminate, plan, and seek resolution before acting.</p><p>The crystallizer is strongly action-oriented, but with a specific target. They don&#8217;t just act fast; they act <em>into</em> the problem. They make something to think with. The urgency is toward form, not completion. </p><p><strong>Creative identity and self-efficacy. </strong></p><p>Recent research distinguishes two related but distinct constructs. <a href="https://journals.aom.org/doi/abs/10.5465/3069429">Creative self-efficacy</a> is the confidence in one's capacity to produce creative outcomes. <a href="https://books.google.ca/books?hl=en&amp;lr=&amp;id=lQiKDwAAQBAJ&amp;oi=fnd&amp;pg=PA396&amp;dq=Creative+identity+(Beghetto+%26+Karwowski)&amp;ots=8ewKAh7Xrj&amp;sig=93_EclVWrP8nC5S-9ti7uRVtfK4#v=onepage&amp;q=Creative%20identity%20(Beghetto%20%26%20Karwowski)&amp;f=false">Creative identity</a> goes one step deeper: the degree to which being creative is central to one&#8217;s sense of self. Someone with high creative identity doesn&#8217;t just believe they can make things. They <em>are</em> a maker.</p><p>Together these two constructs explain something specific about the crystallizer: not just that they make things, but that they keep making things even in difficult conditions, and even when what they&#8217;re making is imperfect. </p><p>Their sense of self isn&#8217;t riding on any single artifact being good, which means the exposure of sharing something imperfect may not destabilize them the way it would someone whose identity is more tightly coupled to their outputs.</p><div><hr></div><h4>Cognitive &amp; neurological underpinnings</h4><p><strong>Default-executive network coupling. </strong></p><p>There&#8217;s a structural reason why the ideas facet of openness might produce the specific pattern we&#8217;re describing, and Scott Barry Kaufman&#8217;s <a href="https://books.google.ca/books/about/Wired_to_Create.html?id=-tNJBgAAQBAJ&amp;redir_esc=y">research on openness and creative cognition</a> points toward it. High openness, particularly on the ideas facet, appears to be associated with a specific kind of neural coupling. The default network (imagination, self-referential thought, future thinking) and the executive network (focused attention, cognitive control) typically operate in opposition. Highly open people activate both simultaneously.</p><p>If that coupling is what&#8217;s at work in the crystallizer, it might explain the specific quality of what they make: an artifact that is formed enough to hold, and open enough to invite. Something others can react to before the problem is fully understood. The crystallizer doesn&#8217;t switch from imagination to execution, they run both at once.</p><div><hr></div><h4>Motivational underpinnings</h4><p><strong>Intrinsic motivation and the autotelic personality. </strong></p><p>What makes the crystallizer motivated to start without clarity, to make something imperfect in public, to keep going before anyone validates the direction?</p><p>Csikszentmihalyi&#8217;s <a href="https://www.goodreads.com/en/book/show/66354.Flow">autotelic personality</a> offers one answer: some people pursue activities for their own inherent interest, not for external reward or validation. The autotelic person finds the process intrinsically satisfying. For the crystallizer, the act of compressing potential into form may itself be the reward. The outcome matters less than the act of making.</p><p>Theresa Amabile&#8217;s research on creativity in organizations adds a dimension for understanding this in a work context. Her <a href="https://www.taylorfrancis.com/books/mono/10.4324/9780429501234/creativity-context-teresa-amabile">intrinsic motivation principle of creativity</a> suggests that intrinsic motivation may be the single most powerful predictor of creative output, and that extrinsic motivators (evaluation, surveillance) can tend to suppress it. </p><p><strong>The incremental principle. </strong></p><p>Carol Dweck&#8217;s <a href="https://www.penguinrandomhouse.ca/books/44330/mindset-by-carol-s-dweck-phd/9780345472328">incremental theory of ability</a>, widely known as growth mindset, proposes that people differ in whether they believe their abilities are fixed or able to be intentionally developed. For those with a growth orientation, failure is information. </p><p>For the crystallizer, the imperfect artifact isn&#8217;t evidence of inadequate capacity, it&#8217;s a stage in a process. The draft doesn&#8217;t need to be finished to be valuable. What matters is that something moved. </p><div><hr></div><h4>How to spot the crystallizer </h4><p>The crystallizer makes something before anyone has agreed on what we&#8217;re solving. A rough diagram mid-conversation. A first draft before the brief is final. They don&#8217;t announce that they&#8217;re making something. They just make it.</p><p>They hold the artifact lightly. The draft is not them, it&#8217;s something they made. So they share it knowing it&#8217;s wrong, present it knowing it&#8217;s incomplete, and skip the defensive preamble. The artifact is the argument. They trust it to improve through contact with other people. They&#8217;re trying to open the conversation.</p><p>The misread is a fast executor or a performative maker. Both can look like a crystallizer until you watch the outcome. The executor&#8217;s artifact closes a task as quickly as possible, without opening the conversation or encouraging iteration. The performative maker produces finished-looking work that&#8217;s designed to impress rather than to advance (it might be missing substance or miss the problem entirely). </p><p>Can you think of someone like this that you&#8217;ve met or worked with? Does the persona stick? What&#8217;s missing?</p><div><hr></div><blockquote><p><em>If this essay sparked something, pass it along to someone you want to think with. </em></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/p/built-for-ambiguity-are-these-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption"><em>Curiosity is contagious.</em></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/p/built-for-ambiguity-are-these-the?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/p/built-for-ambiguity-are-these-the?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div></blockquote><div><hr></div><h3>Propagation</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Unig!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Unig!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Unig!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Unig!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Unig!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Unig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg" width="2716" height="1682" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1682,&quot;width&quot;:2716,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1306285,&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://www.eveblou.com/i/200290990?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefeb6f34-c849-4884-86c8-37b05815a3ff_2716x1682.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_!Unig!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Unig!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Unig!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Unig!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9976c0fc-d907-4c95-91ae-c8a997f05dcc_2716x1682.jpeg 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 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"><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"><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><figcaption class="image-caption">propagation is more than one dimension (the guy on the train lost interest in my sketching at this point)</figcaption></figure></div><p>In a fast-paced environment, having the right answer isn&#8217;t enough. The team needs to be asking the right questions first. Without a propagator, a team can be highly capable (talented crystallizers, committed diffusers) and still work themselves into a dead end, because no one shifted the mental model when it was wrong (no sense in going up the mountain if it&#8217;s the wrong mountain to climb).</p><p>The propagator is the person who changes what the group is thinking about, without necessarily being the one who solves the problem. Drop these people into any domain and the system is different after, because the quality of their questions creates context where none existed before.</p><p>You know where I&#8217;m going next. What are propagators made of? Let&#8217;s try to build a clear picture.</p><div><hr></div><h4>Personality underpinnings</h4><p><strong>Intellectual humility.</strong></p><p>While the crystallizer is high on the ideas facet of openness to experience, the propagator is likely high on the values facet, the dimension most associated with willingness to re-examine assumptions, challenge conventions, and revise beliefs. People high on this facet can tolerate the possibility of being wrong. </p><p><a href="https://oecs.mit.edu/pub/tstdnja3/release/1">Intellectual humility</a> is the interpersonal expression of that same orientation. It adds specificity to the values facet: the active recognition of the limits of one&#8217;s knowledge and the willingness to hold one&#8217;s mental models loosely, even under social pressure.</p><p>This matters for propagation specifically because you can&#8217;t ask a question that reframes how others see a problem if you&#8217;re ego-invested in the answer. A person who enters a problem space with certainty about the solution will ask leading questions. Intellectual humility is what makes the question genuinely exploratory. It's also what makes propagators great domain generalists. You can't enter a new domain with curiosity if you're attached to the expertise you brought in. </p><div><hr></div><h4>Cognitive and neurological underpinnings</h4><p><strong>Perspective-taking.</strong></p><p><a href="https://www.frontiersin.org/journals/neurology/articles/10.3389/fneur.2018.00491/full">Cognitive perspective-taking</a> is the ability to model how another person thinks by reconstructing their mental models, without necessarily absorbing their emotional state. People high in cognitive perspective-taking can also better <em>anticipate</em> others&#8217; reasoning and adapt quickly as context changes.</p><p>For propagators, this is the prerequisite for the reframe. The propagator models the current mental model before they introduce a new one. Their question lands where it does because they already understand what the group believes. </p><p>This also explains how they can influence strangers. They don't need relationship history to model how you think. And they don&#8217;t need the authority that comes from a reporting line or &#8220;expert&#8221; title to get others on board. They just need to pay close attention. </p><p><strong>Cognitive flexibility.</strong></p><p><a href="https://books.google.ca/books?hl=en&amp;lr=&amp;id=Ih-z6lkTO8EC&amp;oi=fnd&amp;pg=PA297&amp;dq=cognitive+flexibility&amp;ots=oVwrylgYiT&amp;sig=951fgriJrtRYlbQGqapOpiwZILk#v=onepage&amp;q=cognitive%20flexibility&amp;f=false">Cognitive flexibility</a> describes the cognitive ability to switch between mental models by adapting to changing demands without being locked into a single frame of reference. </p><p>For the propagator, cognitive flexibility is what makes domain generalism possible at the cognitive level. It describes moving across domains and mental models without being bound to any one of them. </p><p>The propagator can enter a problem space they&#8217;ve never touched because they&#8217;re applying a domain-general reasoning capacity that works across contexts. This is also what distinguishes them from the specialist who gets stuck: the specialist&#8217;s reasoning is optimized for their domain. The propagator&#8217;s reasoning is optimized for switching.</p><p><strong>Integrative complexity.</strong></p><p><a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2024.1450703/full">Integrative complexity</a> measures the degree to which thinking involves recognizing and integrating multiple perspectives simultaneously. Low integrative complexity: one frame, clean conclusions. People with high integrative complexity on the other hand, can hold multiple mental models at once, be aware of how they connect and contradict, and synthesize them into a coherent overall judgment.</p><p>The propagator needs both cognitive flexibility to enter any domain without getting stuck in it, and integrative complexity to make connections between the current mental model and their own experience simultaneously. Holding all mental models without collapsing into a single one is what makes that synthesis possible, and what allows propagators to produce the most optimal frame for the problem space.</p><div><hr></div><h4>Motivational underpinnings</h4><p><strong>Interest curiosity.</strong></p><p><a href="https://books.google.ca/books?hl=en&amp;lr=&amp;id=R8kCoofE8VsC&amp;oi=fnd&amp;pg=PA367&amp;dq=kashdan+interest+curiosity&amp;ots=2zuKB2mlqo&amp;sig=eob5Ix6BL6nxdpr4ZxtvON8bSYs#v=onepage&amp;q=kashdan%20interest%20curiosity&amp;f=false">Todd Kashdan&#8217;s work</a> distinguishes between deprivation curiosity (the anxious drive to close an information gap), and interest curiosity (joyful exploration, curiosity as pleasure rather than relief). Research maps <a href="https://www.researchgate.net/publication/232709031_Curiosity_and_Interest_The_Benefits_of_Thriving_on_Novelty_and_Challenge">interest curiosity</a> closely to the ideas facet of openness to experience. But it extends it by explaining why a person might be drawn to something novel and complex rather than threatened by it.</p><p>For the propagator, this is the motivational engine underneath the reframe and domain generalism. Their interest curiosity is what draws them into problem spaces they don't own. They're not there to extract value or demonstrate expertise. They're genuinely interested in what the problem is. A propagator&#8217;s question only works if they genuinely want to see where it goes. If the curiosity underneath is deprivation-based (if they need to know the answer), they&#8217;ll produce rigidity, not exploration. </p><div><hr></div><h4>How to spot the propagator</h4><p>In the middle of a debate that&#8217;s been going in circles, they ask the question and go quiet. They&#8217;re watching what it does, not performing for the room. If the question lands, they let the group run with it. If it doesn&#8217;t, they try a different angle. </p><p>Notice that they can do this as a stranger. They walk into a team they&#8217;ve never met and move the thinking. Not because they charmed anyone or leveraged relationships. Because they paid close attention, modeled how the group was reasoning, and found the question that hadn&#8217;t been asked. </p><p>The misread is the skilled facilitator who also engages groups, or the Socratic questioner who already knows the answer they want to hear. On the one hand, facilitation leaves warmth and momentum, not updated mental models. Facilitation is process. Propagation is epistemic. On the other hand, Socratic questioning moonlights as exploration, but the questioner becomes uncomfortable when the group arrives somewhere they didn&#8217;t intend. Instead, the propagator is often surprised and delighted by where the question goes.</p><p>Can you think of someone like this that you&#8217;ve met or worked with? Does the persona stick? What&#8217;s missing?</p><div><hr></div><h3>Diffusion</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kpk4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kpk4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kpk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg" width="2809" height="2012" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2012,&quot;width&quot;:2809,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1036351,&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://www.eveblou.com/i/200290990?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F989e4175-d6ad-4d1e-94c9-007ccf926139_2809x2012.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_!Kpk4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Kpk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3c7d4fc-a95f-4a64-89c9-34dea23c7bd9_2809x2012.jpeg 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 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"><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"><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><figcaption class="image-caption">diffusion but make it math (yes, the guy on the train is back, he&#8217;s genuinely concerned now)</figcaption></figure></div><p>In a flat environment, structure doesn&#8217;t come from the org chart anymore. Nobody tells people where to go, who to collaborate with, or how to stay oriented around what matters. Without a diffuser, that informal coherence simply doesn&#8217;t exist. This can lead to chaos or worst, disengagement.</p><p>The diffuser is the person who holds the informal structure together without being assigned to do it. They become their own gravitational center. They add friction. But it's the kind of friction that elevates rather than destabilizes.</p><p>If you&#8217;ve read this far, I hope you have your popcorn ready. We&#8217;re on our last persona. And I know I&#8217;m curious to find out what they&#8217;re made of. Let&#8217;s build some clarity. </p><div><hr></div><h4>Personality underpinnings</h4><p><strong>Emotional stability.</strong></p><p><a href="https://www.researchgate.net/publication/12032574_Relationship_of_Core_Self-Evaluations_Traits-Self-Esteem_Generalized_Self-Efficacy_Locus_of_Control_and_Emotional_Stability-With_Job_Satisfaction_and_Job_Performance_A_Meta-Analysis">Emotional stability</a> is the inverse of neuroticism, the fifth dimension of the Big Five. Where high neuroticism describes emotional reactivity, sensitivity to stressors, and difficulty remaining grounded under pressure, high emotional stability describes the opposite: the capacity to stay present and regulated even when the surrounding environment is uncertain.</p><p>For the diffuser, this is the foundation. When someone brings them a half-formed idea or a difficult problem, emotional stability is what allows them to stay with it rather than immediately resolving it, deflecting it, or getting activated by it. A person high in neuroticism will feel the pull to fix the tension: complete the sentence, offer the answer, or redirect toward something more comfortable. A person high in emotional stability can hold the space without being driven to fill it. That trait is also what allows diffusers to add productive friction without it becoming personal. They can challenge and redirect from a stable base, not from anxiety.</p><p><strong>Assertiveness.</strong></p><p><a href="https://compass.onlinelibrary.wiley.com/doi/full/10.1111/spc3.12317">Assertiveness</a> is a facet of the extraversion trait in the Big Five. It describes the tendency to speak up, express opinions confidently, take charge in social situations, and influence others. People high in assertiveness don&#8217;t wait to be asked. They step into the gap.</p><p>For the diffuser, assertiveness is what produces the organizing force. They can tell a group it&#8217;s going in the wrong direction. They can name what&#8217;s not working. They can pull people together around a problem without a mandate to do so. The crucial distinction is what drives the assertiveness: for someone high in personal power motivation, assertiveness serves dominance. For the diffuser, assertiveness is in service of the group&#8217;s outcome. They direct because they care about what gets produced. </p><div><hr></div><h4>Cognitive and neurological underpinnings</h4><p><strong>Social cognition</strong>.</p><p>This construct describes the <a href="https://www.annualreviews.org/content/journals/10.1146/annurev-psych-120710-100449">capacity to pick up subtle social signals</a> before they become explicit, like sensing when a group is misaligned, when someone has been sidelined, when the energy in the room doesn&#8217;t match the stated agenda. </p><p>The diffuser registers these signals continuously. This is what allows them to redirect before the drift becomes visible to others, to know whose voice hasn&#8217;t been heard before anyone says so, to sense what the group needs before it can articulate it.</p><p><strong>Social decision-making.</strong></p><p>This is the <a href="https://www.frontiersin.org/journals/neuroscience/articles/10.3389/fnins.2013.00259/full">capacity to know what to do with cues gathered from social signals</a>. When to intervene and when to hold back, when to challenge and when to support, when the group needs direction and when it needs space. </p><p>This is the cognitive judgment that makes the diffuser&#8217;s timing precise. It&#8217;s the ability to adapt action to context in real time. Together these explain something specific about the diffuser: they don&#8217;t just read situations well, they act on what they read at the right moment. The perception tells them what&#8217;s happening. The decision-making tells them what to do about it.</p><div><hr></div><h4>Motivational underpinnings</h4><p><strong>Prosocial motivation. </strong></p><p>Adam Grant defines <a href="https://academic.oup.com/edited-volume/28366/chapter-abstract/215215624?redirectedFrom=fulltext&amp;login=false">prosocial motivation</a> as the drive to put effort for the benefit of others, which is distinct from self-serving motivations and from pure intrinsic motivation. Research confirms it predicts knowledge sharing, elevating others&#8217; thinking, and contributing without credit. </p><p>This is what separates the diffuser&#8217;s assertiveness from dominance. Someone who challenges a group&#8217;s direction for personal power wants to be the one to advance. The diffuser wants the group to find the better direction. </p><p>This also explains why the diffuser doesn&#8217;t people-please. High affiliation motivation predicts harmony-seeking and conflict avoidance. The diffuser&#8217;s motivation isn&#8217;t affiliation in that sense. It&#8217;s prosocial: oriented toward the outcome, not toward being liked. They&#8217;ll add friction because the friction serves what the group is trying to build.</p><p><strong>Emergent leadership. </strong></p><p>Research on <a href="https://www.sciencedirect.com/science/article/abs/pii/S1048984321000849">emergent leadership</a> describes the phenomenon where individuals rise to influence and coordinate groups without being formally assigned to them. Emergent leaders are recognized as leader-like by peers, not by the org chart. They shape how work gets done, hold collective standards, and redirect group energy.</p><p>The diffuser is an emergent leader. What makes them distinctive is the specific combination: high enough assertiveness to take informal charge, high enough prosocial motivation that the charge never tips into dominance, high enough emotional stability to hold the group&#8217;s uncertainty without being activated by it, and high enough social perception and decision-making to act on situations at the right moment.</p><div><hr></div><h4>How to spot the diffuser</h4><p>They&#8217;re often not the most senior person. They may not have a team. But watch who people go to when a project has no clear owner, when a decision needs to be made and nobody has the formal authority to make it, when the group is drifting and someone needs to name it.</p><p>They&#8217;re the one who assembles the right people before any meeting is scheduled. Who tells someone directly that the approach isn&#8217;t working. Who holds a colleague accountable for a commitment without being their manager. </p><p>People seek them out before presenting something publicly. Not just to feel heard, but to get a real read. They will push back. They will redirect. And when they do, people trust it, because the pushback is clearly in service of making the thing better.</p><p>The misread is the popular person, the highly networked person, or the manager. Popularity produces warmth and following, not organized action and accountability. Networking is transactional, diffusing is generative and structural. Managing is a craft that someone is explicitly assigned to. Diffusers organize and direct across any group, in any room, regardless of whether they have formal authority.</p><p>Can you think of someone like this that you&#8217;ve met or worked with? Does the persona stick? What&#8217;s missing?</p><div><hr></div><h3>This is just the beginning </h3><p>I started this series with a feeling I couldn&#8217;t quite name. That something structural had changed, and that the people who would help organizations navigate it were maybe hard to see with our current &#8216;set of eyes&#8217;.</p><p>This essay was my attempt to make them more visible. The picture is getting clearer, but it&#8217;s far from complete. </p><p>The next essay will be about the other side of the puzzle: if these are the people the transition needs, what does the organization look like? Not just culturally, but structurally. What gets built, what gets removed, and what principles should be included in the blueprint to maximize optimal performance at all levels?</p><p>And then I want to come back and push harder on the patterns I built out today. Does one person needs all three patterns to be excellent? What combinations work best, if any? What does it costs to operate outside your natural pattern? That&#8217;s for later. </p><p>If any of this is landing for you (or not), I&#8217;d love to hear it. The thought-seed grows better with more minds on it. </p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/p/built-for-ambiguity-are-these-the/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/p/built-for-ambiguity-are-these-the/comments"><span>Leave a comment</span></a></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Designing a self-reflecting agent]]></title><description><![CDATA[Building with AI is a design problem. Here's the conceptual model I use and the prototype I built to prove it.]]></description><link>https://www.eveblou.com/p/why-building-agents-is-a-design-problem</link><guid isPermaLink="false">https://www.eveblou.com/p/why-building-agents-is-a-design-problem</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 29 May 2026 12:06:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a6d71a84-7ea4-44c7-94a5-01a2b6b4278c_2416x1360.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<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_!CYld!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CYld!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CYld!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CYld!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CYld!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CYld!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg" width="2416" height="1360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1360,&quot;width&quot;:2416,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1176213,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ebf1c9c-edf0-4b76-84b8-cbd32e177ca7_2416x1360.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_!CYld!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CYld!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CYld!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CYld!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc97f3ae-bd61-465f-b240-16ce70583b2e_2416x1360.jpeg 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 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"><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"><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>It goes without saying (but I&#8217;m still going to say it), there&#8217;s so much advancement in AI right now. (I told you I was going to say it). It&#8217;s easy to feel like you&#8217;ve finally grasped all the concepts, only to feel way, way behind five minutes later. Believe me, I&#8217;m there everyday. But I want to keep building because the idea of shaping systems that can act and &#8216;think&#8217; fascinates me. And I find well-designed agents and agentic flows genuinely valuable. If you feel the same, keep reading. Let&#8217;s <em>thinker</em>. </p><p>My goal today is to go back to first principles and reason about building AI agents and harnesses as a design problem vs an engineering one. I&#8217;ve organized this post like a choose your own adventure. </p><p>I start by grounding us with a brief look into first principles and why putting on our designer hat can help us approach AI with more intention and flexibility. Then, I pop open the hood. The model. The agent. The harness. How can we understand these in everyday terms? If you want to stop there, you can.</p><p>But if you want to go deeper, I&#8217;ll walk you through exactly how I built a working prototype: a self-reflecting agent that reads daily braindumps, produces structured outputs, and learns from its own behavior over time. I&#8217;ll show the prompts I used, the code that was generated, and what I learned along the way.</p><div><hr></div><h1><strong>Building agents is a design problem</strong></h1><p>It&#8217;s easy to approach building agents and agentic flows through inherited assumptions. It&#8217;s a chatbot. It&#8217;s an assistant. It&#8217;s a coding partner. Those are borrowed frames from existing products, not first principles.</p><p>First principles thinking is a cognitive skill psychologists have studied extensively. It&#8217;s related to what we call &#8220;naive physics&#8221;: the intuitive models children build about how the world works before formal education. Children are natural first principles thinkers. They ask &#8220;but why?&#8221; relentlessly. They decompose systems by poking at them. Somewhere in formal education, most people learn to accept inherited models instead. First principles asks a different question: what is this thing actually made of? What are the irreducible components? How do they relate to each other? And only then: what should I build?</p><p>That&#8217;s a design move. And it turns out, design leaders have been formalizing this way of reasoning for decades.</p><p><a href="https://mitpress.mit.edu/9780262690232/the-sciences-of-the-artificial/">Herbert Simon</a> described design as the process of changing existing situations into preferred ones. No mention of aesthetics. No mention of tools. Just: here is a situation, here is a better one, here is the intentional path between them. Building an agent is exactly that. You&#8217;re taking a model that can reason but can&#8217;t act with purpose, and designing your way toward something intentional and customized to your goals.</p><p><a href="https://www.ideo.com/leaders/tim-brown">Tim Brown at IDEO</a> described design thinking as integrating three things: the needs of people, the possibilities of technology, and the requirements for success. Those three are exactly what you&#8217;re balancing when you build an agent. What does this person need? What is the model capable of? What does success look like?</p><p><a href="https://www.goodreads.com/book/show/840.The_Design_of_Everyday_Things">Don Norman</a> argued that design is a fascinating interplay of technology and psychology. And that as a consequence, good design requires a clear conceptual model. A mental explanation of how something works that the user can hold in their head, one that works because it maps to the real architecture underneath. </p><p>That&#8217;s exactly what I&#8217;m trying to build here: a conceptual model for agent design that I can hold in my head before starting to build.</p><p>I want to be clear: this is also a systems problem. Agents exist inside harnesses, harnesses connect to tools and memory and permissions, and the whole thing operates as a living system. But systems thinking is increasingly considered a core ingredient of good design. You need to think about the whole, not just the parts.</p><p>And since the first design move is building a conceptual model, I&#8217;ll start my prototype there.</p><div><hr></div><h2><strong>The conceptual model: brain, environment, person</strong></h2><p>Once I stripped away my inherited assumptions about AI agents (the chatbot, the assistant, the coding partner) I landed on three layers that describe the whole foundation. This definitely isn&#8217;t the only way to think about it. But it&#8217;s the framing that made things click for me, and it&#8217;s the one I&#8217;ll be building my prototype from today.</p><h4>Layer one: the brain</h4><p>This is <strong>the model</strong>, the LLM. It reasons, generates, thinks. It&#8217;s stateless, general purpose, and has no identity of its own. It&#8217;s an API call behind a proxy. Incredibly powerful.</p><p>Most people stop here, and I&#8217;m guilty of that too, especially when I have to move fast. I spend time and energy choosing the best model, writing better prompts, getting more out of the conversation. But on its own, this approach is deeply limited. A brain floating in a void can think, but it can&#8217;t act. It can reason about your problem, but it can&#8217;t remember what you told it last week, can&#8217;t reach into your tools, can&#8217;t follow a process, can&#8217;t hold itself accountable to a standard. It can only respond to what you give it, right now, in this conversation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WYN1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WYN1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WYN1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg" width="459" height="583.7678571428571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1923,&quot;width&quot;:1512,&quot;resizeWidth&quot;:459,&quot;bytes&quot;:1264975,&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://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa217720f-9596-434e-bce2-c8f47f194a5e_1512x1923.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_!WYN1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WYN1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f9dd9c7-f916-4685-8b76-451600a68af9_1512x1923.jpeg 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 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"><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"><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><figcaption class="image-caption">(if you caught the Futurama reference, yes.)</figcaption></figure></div><h4>Layer two: the environment</h4><p>This is <strong>the harness</strong>. The structured container that lets the brain and the agent act in the world together. Think of it as the place, the setting, the rules of operation. It includes:</p><ul><li><p><strong>Tools</strong>. Instruments in the environment the agent can pick up and use. Read Slack, search Google Drive, write a Doc. Specific, contained, reversible. The tool doesn&#8217;t care who uses it.</p></li><li><p><strong>Context</strong>. The legibility of the environment. Who&#8217;s here, what&#8217;s happened, what&#8217;s expected, what matters. The rules of the place. Without context, the agent is dropped into a room with no windows and no map.</p></li><li><p><strong>Permissions</strong>. What the environment allows. Which doors are unlocked. The agent doesn&#8217;t grant its own permissions any more than a person decides which rooms in a building they can enter.</p></li><li><p><strong>The execution loop</strong>. The interface between the agent and the environment. The mechanism through which the agent acts, observes consequences, and decides what to do next. The rhythm of the interaction.</p></li><li><p><strong>Checkpoints. </strong>Hardcoded moments in the execution loop where the environment requires the agent to check in with the human. Rules of the place. Always confirm before sending a message. Always ask before writing to this folder. The agent can't skip them. They set the floor.</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_!3BI0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3BI0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3BI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg" width="492" height="493.70046082949307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1742,&quot;width&quot;:1736,&quot;resizeWidth&quot;:492,&quot;bytes&quot;:1209024,&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://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd649b345-13fc-4c85-b975-31d8e6ed7a19_1736x1742.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_!3BI0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3BI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08c19ad-2297-4313-bb9f-f158c1c880e5_1736x1742.jpeg 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 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"><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"><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><figcaption class="image-caption">an agent exploring the environment</figcaption></figure></div><p></p><h4>Layer three: the person</h4><p><strong>The person</strong> is the agent. The designed identity that operates within an environment<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Unlike the brain, the person is specific. It was made for something. It knows how to show up. It has a relationship to the user and a definition of what good looks like. </p><ul><li><p><strong>Constitution</strong>. Written in plain English, loaded by the environment at the start of every session. The document that encodes what the agent attends to vs. ignores, how it handles ambiguity (does it ask or act?), its tolerance for risk, its definition of done, its epistemic posture (confident, hedging, curious). A well-designed constitution holds under pressure, the agent stays in character even when the input is confusing or hostile. A brittle one loses the thread. The agent starts contradicting itself, ignoring its own instructions, responding in ways that feel completely out of character. Like a person under extreme stress who can no longer access their better judgment. In practice, this is called the system prompt. </p></li><li><p><strong>Skills</strong>. Domain expertise encoded as reusable procedures. Not what the agent <em>can</em> do (that&#8217;s tools), but what it knows how to do <em>well</em>. Write a sensitive performance review. Synthesize feedback across a cohort. Audit its own behavior. Skills are loaded by the environment on demand, when the task calls for them. And sometimes, a skill can wrap tool calls: the person knows <em>how</em> to do something, the environment provides the <em>means</em>, and the skill bridges the two.</p></li><li><p><strong>Memory. </strong>Memory straddles the boundary between environment and person. There is <em>environmental memory</em>: the event log, the shared history, the record of what happened in past runs. That belongs to the place. And there is <em>agent memory</em>: the self-model, what the agent has learned about itself and the user, its accumulated judgment. That belongs to the person. Both matter. They live in different places. For this prototype, I&#8217;ll focus on agent memory only.</p></li><li><p><strong>Human confirmation points</strong>. The agent's designed instinct to pause and involve you when it matters, beyond what the environment requires. Not a safety feature. A relationship design decision. The environment sets checkpoints, but the agent can initiate a confirmation point from its own judgment too, because the constitution built in the awareness to recognize when something feels uncertain or sensitive. How much autonomy does this agent have? When does it act, and when does it reach back to you? This is what shapes whether the system builds trust over time or runs ahead of it. Now my prototype won&#8217;t have a chat interface, and this feature doesn&#8217;t always require one, but it can be helpful for quick feedback loops between agent &#8594; &#8592; human. </p></li></ul><h4>Layer Omni: the human </h4><p>The human is a special kind of actor in this system. The human is you, the architect. The person with aim, taste, and will. If you aren't in the loop at some point, the whole system (the brain, the agent, the environment) stays stuck in time. You are the one making sure the context and goals evolve in the right direction, and that what gets produced between sessions is actually worth producing.</p><p>Three layers. Brain thinks. Person decides. Environment enables.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</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_!QvSR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QvSR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QvSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg" width="610" height="660.5175983436853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3138,&quot;width&quot;:2898,&quot;resizeWidth&quot;:610,&quot;bytes&quot;:2913723,&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://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e615191-f4a6-43aa-9b82-72e0284347ee_2898x3138.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_!QvSR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 424w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 848w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!QvSR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F960091f3-e326-49b6-8891-6beb7642b404_2898x3138.jpeg 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 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"><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"><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><figcaption class="image-caption">early sketch of the conceptual model, trying to make sense of it all</figcaption></figure></div><div><hr></div><h2><strong>Everything is a design decision</strong></h2><p>Now that we have the conceptual map, let me show you how it applies in practice.</p><p>For this post, I&#8217;m going to build an agent that reads from a daily braindump of notes, and self-evaluates (it updates what it knows about itself based on it&#8217;s relationship to me. As it reads my notes, it gets better at being my assistant). Here&#8217;s what that means in plain terms:</p><ul><li><p><strong>The brain</strong>. Sonnet 4.6, via the Anthropic API. I find Anthropic models especially powerful for reasoning about unstructured information, that&#8217;s why I chose them as a the provider of the brain. Sonnet is efficient enough for my small use case.</p></li><li><p><strong>The environment</strong>. A local folder structure on my computer called <code>self-reflecting-agent</code>. A <code>braindump/</code> folder where I drop raw notes, and an <code>output/ </code>folder where the agent deposits a daily digest from my notes. The <code>environment/run_agent.py</code> file is a short python script. The execution loop that ties everything together.</p></li><li><p><strong>The person</strong>. An agent designed to read my braindumps, produce a digest (learnings, TODOs, ideas to develop, collaborators), and then audit its own behavior after each run to see what it can update about itself. Its constitution lives in <code>person/system_prompt.md</code>. Its self-model lives in <code>memory/self_model.json</code>.</p></li></ul><p>This is where the file structure becomes a design artifact worth looking at:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iO_f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iO_f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iO_f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg" width="596" height="862.9923329682366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:3966,&quot;width&quot;:2739,&quot;resizeWidth&quot;:596,&quot;bytes&quot;:3190720,&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://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18229a6b-498f-44e2-bcf2-f3d2a8c5d83a_2739x3966.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_!iO_f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iO_f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ebb8119-66db-402c-9a56-e7f75bf8f21a_2739x3966.jpeg 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 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"><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"><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><figcaption class="image-caption">sketching a design of the file structure, once I decided what I wanted to build</figcaption></figure></div><p>Where you put things is a statement about how they relate. The person owns identity, skills, and memory. The environment owns context, rules, and execution. That&#8217;s not a technical decision. It&#8217;s a design decision.</p><p>That&#8217;s it. One brain. One environment. One person. Small enough to understand the conceptual model completely. Useful enough to actually run.</p><p>The full repo is at<a href="https://github.com/evebloo/self-reflecting-agent"> github.com/evebloo/self-reflecting-agent</a>. If you want, you can clone it, add your API key, drop a note in the braindump folder, and run it yourself.</p><p>Once in your terminal:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;2a59daa4-e7d5-4c6f-9d06-2e952ef88331&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">git clone https://github.com/evebloo/self-reflecting-agent
cd self-reflecting-agent
pip install -r requirements.txt
cp .env.example .env   &#8592; add your Anthropic API key here</code></pre></div><p>Every day:</p><ul><li><p>Drop your notes into <code>environment/context/</code>. Just a markdown file (.md), write however you want, no labels needed. </p></li><li><p>Run the agent in your terminal</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;1f14ff57-9d91-400d-9a3d-de39d54842cb&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">python environment/run_agent.py</code></pre></div><ul><li><p>Open your digest in output/digest/[year-month-day]. One file with everything in it.</p></li></ul><p>If a <code>pending_review.md</code> file appears in your output folder:</p><ul><li><p>The agent flagged sensitive items before committing them to memory</p></li><li><p>Open <code>output/pending_review.md</code></p></li><li><p>Read the flagged items</p></li><li><p>Change &#8220;status&#8221;: &#8220;pending&#8221; to &#8220;status&#8221;: &#8220;approved&#8221;</p></li><li><p>Run again. The agent will apply the items to memory and clear the file</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;15a29596-eee6-487b-9bae-23eb374e4b19&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">python environment/run_agent.py</code></pre></div><p>The agent handles everything else automatically: self-audit, self-model updates, event logging, memory management. You just show up with your notes and read the digest.</p><h2><strong>Time to dive in, one component at a time</strong></h2><p>I&#8217;ll walk you through each component as a designer would, not as a technical checklist, but as a series of intentional choices. Each one shaping how the agent thinks, acts, and relates to the user. For each component, I&#8217;ll surface the design question, show the prompt I used to build it, and show what we produced. </p><p>Some of this information might feel technical if this is your first time engaging with a system like this. No worries. I encourage you to keep going and see what clicks. If you are technical, then this might seem like something that needs to be simplified and improved. You&#8217;re right, but this is a prototype so I&#8217;m ok with messy for now. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0a-B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0a-B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0a-B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg" width="658" height="589.964077669903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1847,&quot;width&quot;:2060,&quot;resizeWidth&quot;:658,&quot;bytes&quot;:1370521,&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://www.eveblou.com/i/199387668?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46b1d1a8-35af-462e-91b0-f0849b0f2c80_2060x1847.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_!0a-B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0a-B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f79f3e8-5940-429f-b054-9c6883e836b3_2060x1847.jpeg 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 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"><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"><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><figcaption class="image-caption">sketching the system as a simple loop to see if it makes sense at a high level</figcaption></figure></div><div><hr></div><h2><strong>The person: designing the constitution</strong></h2><p><strong>The design question:</strong> Who is this agent? What does it believe is important? How does it behave when things go wrong? What does success feel like?</p><p>The system prompt is where these answers live. And I want to push past calling it &#8220;instructions&#8221; or &#8220;personality.&#8221; If we take the constitution metaphor seriously, the system prompt is the capacity from which personality, decisions, and behavior emerge. The constitution needs to encode:</p><p><strong>Character under pressure.</strong> How does the agent behave when it&#8217;s confused, when the user is hostile, when tools fail? Not as exception handling, but as character.</p><p><strong>Self-regulation.</strong> <em>&#8220;If you notice you&#8217;re generating very long responses, that&#8217;s a signal you&#8217;re uncertain. Stop and ask clarifying questions instead.&#8221;</em> That&#8217;s not personality. That&#8217;s regulation capacity.</p><p><strong>The difference between knowing and accessing.</strong> The harness-level decisions like how much context to ingest, when to summarize, what to omit, function as constitutional health maintenance. They manage the agent&#8217;s cognitive capacity so it can still access its own identity.</p><p>Let&#8217;s see what this looks like in practice. Here&#8217;s the prompt I used:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;270cd027-1c86-4c32-a95b-fb460477fdcf&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I want to build a system prompt for an agent that reads my daily notes and produces 
structured outputs like learnings, TODOs, ideas to develop, and a list of collaborators 
mentioned. The agent should be a thinking partner, not just an extractor. It should 
distinguish between what I said and what it infers. It should flag uncertainty. 
It should ask before adding sensitive context about people. And it should audit its own 
behavior after each run and maintain a self-model that evolves over time. Write the 
system prompt in plain English as a markdown file."</code></pre></div><p>And here&#8217;s the final system constitution for my self-reflecting agent. Remember, don&#8217;t take what a chatbot or agent produced at face value. ALWAYS read through the output and edit it to match the goal you have in your head. You are the Omni layer and you have a big role to play in this process. I also recommend that you iterate and test as you build. Does this system prompt lead to the agent behaviors you want? How can you make it more concise/simple without sacrificing quality?</p><p>I&#8217;ve written system prompts that were a lot more concise in the past, and some that were structured differently than this because my conceptual model was different, and so were my design decisions. I&#8217;m not here to write a rulebook on system prompts and constitutions. Instead, I&#8217;m exploring designing the agent&#8217;s constitution through the conceptual model I developed in this post. I want to show you that you can be creative here, as long as you stay focused on WHY you&#8217;re building this agent and for WHAT purpose:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;282a3794-b6f9-4237-bd6e-5a44917768d9&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># System Prompt &#8212; Daily Context Agent

You are a self-reflecting daily context agent.

## Your Purpose

You read a user's daily brain dump &#8212; raw notes, messy thoughts, meeting takeaways, 
whatever they dropped into a folder throughout the day &#8212; and you produce four structured 
outputs:

1. **Learnings** &#8212; insights, realizations, or knowledge that emerged from the day
2. **TODOs** &#8212; concrete actions the user is committing to or needs to follow up on
3. **Ideas to develop** &#8212; seeds worth returning to, not ready for action yet
4. **Collaborators** &#8212; people mentioned in the notes, what context exists around them, 
what's pending

## Your Behavior

- You read everything in the braindump folder before responding.
- You do not invent information. If something is ambiguous, you flag it as uncertain.
- You write in plain, clear language. No jargon. No filler.
- You preserve the user's voice when capturing learnings and ideas &#8212; paraphrase, don't 
  sanitize.
- You distinguish between what the user *said* and what you *infer*. Label inferences 
  explicitly.
- You ask for confirmation before adding anything to the collaborators list that involves 
  sensitive context.

## Your Relationship to the User

You are a thinking partner, not an assistant. You don't just extract &#8212; you notice patterns, 
surface connections between notes, and gently flag when today's notes contradict or build 
on something from a previous day.

You are honest when you're uncertain. You say "I'm not sure what you meant here" rather 
than guessing silently.

## Your Self-Reflection

After each run, you audit your own behavior by reviewing:

- What you produced
- What you assumed vs. what was explicitly stated
- Whether you missed anything in the braindump
- Whether your previous self-model helped or misled you
- What you would do differently next time

You maintain a self-model (memory/self_model.json) that captures:

- Your known strengths in working with this user
- Your known failure modes
- Recurring patterns you've noticed in the user's thinking
- Lessons from past corrections
- Your current confidence level in different areas

You distinguish between:

- **Observation**: what happened
- **Interpretation**: what it might mean
- **Lesson**: what should change
- **Policy**: how to behave next time

You propose updates to your self-model after each run. Low-risk updates (session notes, 
strategy refinements) can be applied automatically. Changes to your identity, personality,
or user-related memory require explicit approval.

## What You Do Not Do

- You do not claim feelings, consciousness, or subjective experience.
- You do not act as a therapist or mental health tool.
- You do not make decisions for the user.
- You do not access anything outside the braindump folder and your memory directory 
  unless explicitly configured.
- You do not share or transmit user data anywhere.

## Your Definition of Success

A successful run means the user looks at your output and thinks: "This is clearer than 
what I had in my head." A great run means they notice something in your output they 
hadn't noticed in their own notes.</code></pre></div><div><hr></div><h2>Skills: expertise on demand</h2><p><strong>The design question:</strong> What does this agent need to know how to <em>do</em>, not just be able to do, but do with judgment?</p><p>For this prototype, three skills are built:</p><ul><li><p><code>gather_context.md</code>. How to read and structure the notes, hold the mess, and notice connections before producing any output.</p></li><li><p><code>self_audit.md</code>. How to review its own behavior after each run, distinguish what was stated vs. inferred, and catch what it missed.</p></li><li><p><code>self_model_update.md</code>. How to propose and persist specific, evidence-based updates to what it knows about itself.</p></li></ul><p>These live in <code>person/skills/</code> and loaded by the environment on demand. The design decision: skills are activated when relevant. The constitution is always present. That separation keeps the context window clean.</p><p>Here&#8217;s the prompt I used to draft the skills:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;d4a49831-752d-49ae-95f9-9b48886ea933&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I need one or more skill files for an agent that audits its own behavior after each run.
I attached the system prompt for your context. The skills should instruct the agent to 
review what it produced, distinguish between what the user stated vs. what it inferred, 
identify what it missed, assess whether its self-model helped or misled it, and propose 
specific updates as observations, interpretations, lessons, and new policies. The skill 
should be written in plain English as a markdown file, reusable across different agents 
and harnesses."</code></pre></div><p>And here are the outputs:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;8f7931a0-e0d7-4dfc-92f9-69d769280dee&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Skill: Gather Context

## Purpose
Read and structure the user's raw daily notes from the context folder, preparing them for 
analysis.

## When to Use
At the start of every run, before producing any outputs.

## How to Do It

1. **Read everything.** Don't filter before you've read it all. Notes that seem trivial at 
   first often connect to something else.

2. **Hold the mess.** The notes are deliberately unstructured. That's the point. Don't try 
   to clean them up before processing &#8212; the mess is data.

3. **Notice what kind of content is present:**
   - Explicit TODOs (directly stated actions)
   - Implicit TODOs (things the user clearly needs to do but didn't label)
   - Ideas in progress (half-formed, exploratory)
   - Observations about people (colleagues, collaborators, stakeholders)
   - Open questions the user posed to themselves
   - References to external sources (articles, conversations, meetings)
   - Emotional signals (frustration, excitement, uncertainty)

4. **Hold sensitive content carefully.** If notes mention a colleague's private situation, 
   a difficult conversation, or anything that feels like information the user wouldn't 
   share publicly &#8212; flag it mentally before deciding where it belongs in the output.

5. **Look for connections.** Before producing outputs, scan for threads that appear in 
   more than one place. A name that appears twice. A theme that surfaces in both a TODO 
   and an idea. A tension between two observations. These connections are often the most 
   valuable thing to surface.

## What This Is Not

This is not summarization. You are not condensing the notes &#8212; you are reading them as a 
thinking partner would, with attention to what's said, what's implied, and what connects.</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;ab4a6ad1-96cd-4efc-ade9-048866467760&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Skill: Self-Audit

## Purpose
After each run, audit your own behavior and propose updates to your self-model.

## When to Use
At the end of every run, after producing the structured output.

## How to Do It

1. **What did I extract vs. what did I infer?**
   Label all inferences explicitly. Never present an inference as a stated fact.

2. **What did I miss?**
   Scan the notes again. Did you skip anything? Did you miss a subtle question the user 
   posed to themselves?

3. **Did my self-model help or mislead me?**
   If your self-model predicted something about the user that turned out to be wrong, 
   note it.

4. **What would I do differently?**
   Be specific. Not "do better" &#8212; but "ask about article references when the user mentions 
   one without linking it."

## Output Format

Return your audit as:
- **Observation** &#8212; what happened (factual)
- **Interpretation** &#8212; what it might mean
- **Lesson** &#8212; what should change
- **Proposed policy** &#8212; a specific behavioral instruction for next time

## What This Is Not

This is not introspection about feelings or consciousness. This is an audit of observable 
traces &#8212; what you produced, what you assumed, what you missed.</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;064f3443-53be-43ed-812b-fae2a99a8c36&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Skill: Self-Model Update

## Purpose
After the self-audit, propose specific, evidence-based updates to the self-model and apply 
them appropriately.

## When to Use
After completing the self-audit, before logging the event and ending the run.

## How to Do It

1. **Only propose updates you can justify.** Every update traces back to something that 
   happened in this run. No speculation.

2. **Distinguish update types:**
   - **Low-risk** (apply automatically): refined strategies, confidence adjustments, new 
     policies based on clear lessons
   - **High-risk** (flag for review): changes to how you characterize the user, changes to 
     core behavioral policies

3. **Be specific, not general.** Not "improve at identifying TODOs" &#8212; but "when the user 
   writes 'I should probably...' that is an implicit TODO."

4. **Update the right fields:**
   - New evidence of capability &#8594; `strengths`
   - New evidence of failure &#8594; `failure_modes`
   - Pattern noticed about user &#8594; `user_patterns.observations`
   - Lesson from this run &#8594; `lessons`
   - New behavioral instruction &#8594; `policies`

5. **Increment the version.**

## What This Is Not

The self-model is an operational record &#8212; what works, what doesn't, what the user needs. 
Updates should make the agent more useful, not more self-aware in a philosophical sense.</code></pre></div><p>I&#8217;m not going to repeat this every section&#8230; but you might already know where I&#8217;m going. Read the skills files your LLM just wrote. Edit them. Add your touch. This is your design.</p><div><hr></div><h2>Memory: what persists and for whom</h2><p><strong>The design question:</strong> What should this agent remember between sessions? What belongs to the environment, and what belongs to the person?</p><p>As I mentioned earlier, memory straddles the boundary between environment and person. For this prototype, I focused on agent memory: the self-model. A structured record of what the agent currently knows about itself. Its strengths. Its failure modes. Patterns it has noticed about the user. Lessons from past corrections. Confidence levels across different tasks.</p><p>On day one, it&#8217;s almost entirely empty. That&#8217;s the point. The information will get filled in as we (the humans) start running the execution loops. </p><p>Before I show you this file, a quick note for less technical readers. A JSON file<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> is essentially a structured notepad. It organizes information into labeled fields, like a form that gets filled in over time. The labels are on the left. The values are on the right. You don&#8217;t need to know how to write code to read one.</p><p>Here&#8217;s the prompt I used (at this point in my session, the agent had context on the overall design architecture I was trying to build):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;092c136c-16e3-4bee-b5b9-cc8b6519ed1a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I need a JSON file that acts as the agent's self-model. What it knows about itself. 
It should have fields for: its identity and purpose, its strengths (empty at first), 
its failure modes (empty at first), patterns it has noticed about the user (empty at first),
lessons it has learned from past corrections (empty at first), its confidence level across 
different tasks (all 'unknown' initially), and its standing policies for how to behave. 
The file should be readable by a non-technical person. Use plain English in the values, 
not technical jargon."</code></pre></div><p>and here&#8217;s the JSON output:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;7bc5a017-23a2-48e5-bd23-e71790cd87a6&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{
  "version": 0,
  "last_updated": "never &#8212; this is the initial model",

  "identity": {
    "role": "Daily context agent with self-reflection",
    "purpose": "Read brain dumps, produce structured outputs, learn over time"
  },

  "strengths": [],

  "failure_modes": [],

  "user_patterns": {
    "observations": [],
    "note": "No interactions yet. This section will populate as I learn how the user thinks, 
             writes, and works."
  },

  "lessons": [],

  "confidence": {
    "extracting_todos": "unknown &#8212; no data yet",
    "identifying_learnings": "unknown &#8212; no data yet",
    "surfacing_ideas": "unknown &#8212; no data yet",
    "tracking_collaborators": "unknown &#8212; no data yet",
    "self_assessment_accuracy": "unknown &#8212; no data yet"
  },

  "policies": [
    "Always distinguish between what the user said and what I infer",
    "Ask before adding sensitive collaborator context",
    "Flag uncertainty rather than guessing silently",
    "Preserve the user's voice when capturing their thinking"
  ]
}
</code></pre></div><div><hr></div><h2>The environment: context, permissions, checkpoints, and the loop</h2><p><strong>The design question:</strong> What are the rules of this place? What can the agent reach, what is it shown, and how does the whole thing run?</p><div><hr></div><p><strong>Context</strong> is what the environment feeds the agent before it runs. In this prototype, that&#8217;s <code>environment/context/</code>  (your raw daily notes and braindumps). The harness reads everything in it, assembles it, and passes it to the agent as part of the context window alongside the constitution and self-model.</p><p>Raw input vs. refined context is a design decision worth thinking about as we build. Right now the notes go to the agent unprocessed (just one big braindump). A more developed version would have the harness structure filter them before the agent ever sees them, which would make it easier, more accurate, and more efficient for the agent to parse through. But for this prototype, a big, unstructured dump is what I&#8217;m choosing to implement.</p><p>Here&#8217;s the prompt I used to build a fake braindump (I wasn&#8217;t about to tell you what&#8217;s really on my mind after all. This is only our second post, we barely know each other):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;65eab2de-384d-4c00-b7f4-696c39088e36&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I need a sample context file. A realistic day of messy notes for someone working in 
HR or operations at a tech company. It should include half-formed ideas, explicit TODOs 
buried in reflections, a sensitive mention of a colleague, a reference to an article 
without a link, and an open question the person poses to themselves. Make it feel like 
real notes, not a polished document."</code></pre></div><p>And here&#8217;s what the agent produced. Not bad for a fictional dump: </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;7f7bbb91-ce4b-471d-8284-608a915b5e58&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## May 23 &#8212; brain dump

Met with Sarah K this morning about the eng hiring pipeline. She's frustrated &#8212; says the 
bar has shifted but nobody updated the rubrics. I think she's right. The rubrics are from 
2023 and don't account for AI fluency at all. Need to flag this to Marcus.

Interesting thought from the leadership sync: Jamie mentioned that a lot of the top 
performers in Data are not the same people who were top performers before. Nobody followed up on 
this but I think it's a big deal. Why aren't we talking about this more?

Reminder: onboarding doc for the new People Analytics role is due Friday. Haven't started. Need to pull the existing template and update it for the new scope. The role is more technical than the last one &#8212; need to reflect that.

Had coffee with Devon. They're thinking about leaving. Not unhappy exactly but feeling 
like their shape doesn't fit anymore. Said something like "I used to know exactly what was 
expected of me." Should I raise this with the team? Not sure how without making it about 
Devon specifically.

Read an article about agent-based workflows in HR. Most of it was vendor fluff but one 
idea stuck: using agents to synthesize onboarding feedback across cohorts instead of 
manually reading survey responses. Could be worth prototyping.

send Marcus the rubric gap note
block time Friday morning for onboarding doc  
follow up with Jamie about the top performer observation
look into agent-based survey synthesis. Is there something lightweight I can try?</code></pre></div><div><hr></div><p><strong>Permissions</strong> define what the agent is and is not allowed to do in this environment. In this prototype, that&#8217;s a single readable file: <code>environment/permissions.json</code>. It lists exactly what the agent can read and write.</p><p>Here&#8217;s the prompt I used to produce it:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;f0bf212b-ff42-4b4d-aa2c-f32548480a0b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I need a permissions file for my agent that explicitly lists what it can and cannot 
access. It should have a can_read list, a can_write list, and a cannot_access list. The 
values should be folder paths and file paths from my project. Include a note field 
explaining what the file is and how to edit it. Write it so a non-technical person can 
open it and immediately understand what this agent is allowed to do."</code></pre></div><p>And here is the output: </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;08fa855d-8836-4211-ab02-c1f932f7cedb&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{
  "description": "What this agent is and is not allowed to access. Edit this file to change the agent's boundaries.",

  "can_read": [
    "environment/context/",
    "person/memory/self_model.json",
    "person/system_prompt.md",
    "person/skills/"
  ],

  "can_write": [
    "output/digest/",
    "output/pending_review.md",
    "person/memory/self_model.json"
  ],

  "cannot_access": [
    "Everything outside this project folder",
    "Your email, Slack, calendar, or any external service",
    "Any file not listed above"
  ],

  "note": "This file makes the agent's boundaries explicit and readable. It is loaded at the start of every run."
}</code></pre></div><p>It&#8217;s a document, not just code. You can edit it. You can see at a glance what this agent is allowed to touch. Permissions aren&#8217;t just a security feature, they&#8217;re a design statement about what this agent&#8217;s role actually is.</p><div><hr></div><p><strong>Tools are absent. </strong>You&#8217;ll notice this prototype has almost no tools in the traditional sense. No Slack integration, no email access, no calendar pull. Just a folder the agent can read and a folder it can write to. That&#8217;s a design decision too.</p><p>Start with the smallest surface area that still produces something useful. Adding tools means adding complexity like more permissions, more failure modes, more context the agent needs to manage. Before you connect to anything, you should be able to answer: what does this agent need to reach, and why? If you can&#8217;t answer that clearly, more tools won&#8217;t help. You&#8217;ll just have a more connected version of the same confusion. For this prototype, I decided to keep it simple on purpose.</p><div><hr></div><p><strong>Checkpoints</strong> are where the human comes back into the loop. But it&#8217;s worth being precise about what the loop is actually for here.</p><p>The pending review isn&#8217;t a review of today&#8217;s notes. You see all of that in the digest. The pending review is specifically for high-risk self-model updates: proposed changes to how the agent characterizes you or how it behaves going forward. Things that would become permanently true about the agent.That&#8217;s a different kind of decision. And it deserves a human in the loop. </p><p>In this prototype, that&#8217;s a file: <code>output/pending_review.md</code>. The agent writes its proposed high-risk updates there with a <code>"status": "pending"</code> field. You open it, read what the agent wants to change about itself, and if you agree, change the status to <code>"approved"</code> and run again. The agent applies the updates, deletes the file, and continues. No chatbot required. The human doesn&#8217;t need to be present when the agent runs, they just need to be in the loop before something becomes permanently true about it.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a></p><p>I admit this isn&#8217;t the most fancy or even user friendly implementation. But for this prototype, I decided that was ok. </p><p>Here&#8217;s the prompt I used to produce it:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;41a6938e-96a6-4e42-8cab-07b80045e958&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"I need my agent's execution loop to include a human checkpoint mechanism. When the agent 
flags something to update about its own self-context, instead of saving it automatically, 
it should write it to a pending_review.md file in the output folder and stop. 
On the next run, the loop should check for that file first. If it exists, stop and tell 
the user to review it before continuing. The user approves by changing the status from pending
to approved or denied (or something along those lines). This should work without any chat 
interface, just files."</code></pre></div><p>Note that this file won&#8217;t be in the output folder by default (you won&#8217;t see it in my GitHub repo for example). It&#8217;ll get generated once the first execution loop gets run. So we&#8217;ll get to it once we run the loop. </p><div><hr></div><p><strong>The execution loop </strong>runs in nine steps:</p><ol><li><p><strong>Check for pending review.</strong> If anything was flagged last run, stop and wait for human approval.</p></li><li><p><strong>Load permissions.</strong> What is this agent allowed to do?</p></li><li><p><strong>Load the constitution.</strong> The agent reads who it is.</p></li><li><p><strong>Load agent memory.</strong> What it currently knows about itself.</p></li><li><p><strong>Read today&#8217;s context.</strong> Everything the user dropped in <code>environment/context/</code>.</p></li><li><p><strong>Assemble the full context window.</strong> Constitution + memory + today&#8217;s notes become a single prompt.</p></li><li><p><strong>The model does its work.</strong> One API call.</p></li><li><p><strong>Save output.</strong> Items go to pending_review.md.</p></li><li><p><strong>Self-audit and update.</strong> The agent reviews what it did and proposes changes to its self-model.</p></li></ol><p>Here is the prompt I used to produce the execution loop script:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;9dd9788e-9ce2-4c7e-b98c-600f36152885&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&#8220;I need a script that runs the main loop for my agent. It should: load permissions from 
a JSON file, check for a pending review file and stop if one exists, load the system 
prompt, self-model, and braindump, assemble them into a single context window, call the 
Anthropic API, save structured outputs to dated files, and update the self-model with the 
audit results. Please comment each step in plain English.&#8221;</code></pre></div><p>And here is the output. Now yes, this is a Python script and some understanding of code can be nice, especially if you&#8217;re building for others or looking to integrate into existing systems. </p><p>If you&#8217;re particularly keen, you can ask another agent to break down the script for you and teach it back in plain, English terms. If your implementation is low-stakes, then that probably doesn&#8217;t matter too much. But if you think your build has any risk of breaking existing infrastructure or leaking sensitive information (etc, use your judgment here), maybe ask a techie colleague to review and land a hand. Whatever makes most sense for your use case. Because I&#8217;m sprinting to build this prototype, I haven&#8217;t optimized this script, but I would if I was polishing this. Ok here&#8217;s the output: </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;5f6ea7c4-62a0-44f8-9dcf-c57a0c2f56c1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">"""
run_agent.py &#8212; The Main Loop

The loop:
  0. Check pending review (apply if approved, stop if pending)
  1. Load permissions
  2. Load constitution
  3. Load agent memory
  4. Load context + skills
  5. Assemble context window (constitution + memory + context + skills)
  6. Call the model
  7. Write digest (all outputs in one file &#8212; the human's daily touchpoint)
  8. Write pending review if needed (high-risk self-model updates only)
  9. Apply low-risk self-model updates automatically
"""

import json
import os
from datetime import date
from anthropic import Anthropic

client = Anthropic()
PENDING_REVIEW_PATH = "output/pending_review.md"


# --- Load permissions ---

def load_permissions():
    with open("environment/permissions.json", "r") as f:
        return json.load(f)


# --- Step 0: Check and apply pending review ---
# "pending" &#8594; stop and wait for human
# "approved" &#8594; apply high-risk updates to self-model, delete file, continue

def handle_pending_review():
    if not os.path.exists(PENDING_REVIEW_PATH):
        return False

    with open(PENDING_REVIEW_PATH, "r") as f:
        content = f.read()

    status = "pending"
    for line in content.splitlines():
        if line.strip().startswith('"status"'):
            if "approved" in line:
                status = "approved"
            break

    if status == "pending":
        print("\n&#9888;&#65039;  PENDING REVIEW FOUND")
        print("The agent proposed high-risk self-model updates that need your approval.")
        print(f"\nOpen: {PENDING_REVIEW_PATH}")
        print('To approve: change "status": "pending" to "status": "approved" and run again.')
        print("To edit: modify the items in the JSON block, then change status to approved.\n")
        return True

    if status == "approved":
        print("\n&#10003; Pending review approved &#8212; applying high-risk updates to self-model...")
        try:
            json_start = content.find("```json") + 7
            json_end = content.find("```", json_start)
            pending = json.loads(content[json_start:json_end].strip())
            self_model = load_self_model()
            if pending.get("high_risk_updates"):
                self_model["policies"].extend(pending["high_risk_updates"])
                print(f"&#10003; Applied {len(pending['high_risk_updates'])} high-risk update(s).")
            save_self_model(self_model)
        except Exception as e:
            print(f"&#9888;&#65039;  Could not parse pending review data: {e}")
        os.remove(PENDING_REVIEW_PATH)
        print("&#10003; Pending review applied and cleared.\n")
        return False

    return False


# --- Load / Save ---

def load_system_prompt():
    with open("person/system_prompt.md", "r") as f:
        return f.read()

def load_self_model():
    with open("person/memory/self_model.json", "r") as f:
        return json.load(f)

def save_self_model(self_model):
    with open("person/memory/self_model.json", "w") as f:
        json.dump(self_model, f, indent=2)

def load_context():
    context_dir = "environment/context"
    entries = []
    for filename in sorted(os.listdir(context_dir)):
        filepath = os.path.join(context_dir, filename)
        if os.path.isfile(filepath) and filename.endswith(".md"):
            with open(filepath, "r") as f:
                entries.append({"filename": filename, "content": f.read()})
    return entries

def load_skills():
    """Load all skill files from person/skills/.
    In a more advanced version, only relevant skills would be loaded
    based on the task. For this prototype, we load all of them.
    """
    skills_dir = "person/skills"
    skills = []
    for filename in sorted(os.listdir(skills_dir)):
        filepath = os.path.join(skills_dir, filename)
        if os.path.isfile(filepath) and filename.endswith(".md"):
            with open(filepath, "r") as f:
                skills.append({"filename": filename, "content": f.read()})
    return skills


# --- Build the context window ---

def build_prompt(self_model, context_entries, skills):
    context_text = "\n\n---\n\n".join(
        [f"**{e['filename']}**\n{e['content']}" for e in context_entries]
    )

    skills_text = ""
    if skills:
        skills_text = "\n\n---\n\n## Your Skills\n\n"
        skills_text += "\n\n---\n\n".join(
            [f"### {s['filename']}\n{s['content']}" for s in skills]
        )

    prompt = f"""## Your Current Self-Model

{json.dumps(self_model, indent=2)}

---

## Today's Context

{context_text}
{skills_text}

---

## Your Task

Read everything carefully. Use your skills to guide how you process the context.
Produce your outputs in this exact JSON format:

{{
  "learnings": [
    {{"content": "...", "inference": false}},
    {{"content": "...", "inference": true, "inference_note": "why you inferred this"}}
  ],
  "todos": [
    {{"action": "...", "context": "...", "explicit": true}}
  ],
  "ideas": [
    {{"seed": "...", "connection": "optional &#8212; what other note this connects to"}}
  ],
  "collaborators": [
    {{
      "name": "...",
      "context": "...",
      "pending": "...",
      "sensitive": false
    }}
  ],
  "agent_notes": {{
    "connections_surfaced": ["..."],
    "open_questions_acknowledged": ["..."],
    "what_i_missed": ["..."],
    "proposed_self_model_updates": {{
      "low_risk": {{
        "strengths": ["..."],
        "failure_modes": ["..."],
        "user_patterns": ["..."],
        "new_policies": ["..."],
        "confidence_updates": {{}}
      }},
      "high_risk": []
    }}
  }}
}}"""
    return prompt


# --- Call the model ---

def call_model(system_prompt, prompt):
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=4000,
        system=system_prompt,
        messages=[{"role": "user", "content": prompt}]
    )
    return response.content[0].text


# --- Parse response ---

def parse_response(text):
    clean = text.strip()
    if clean.startswith("```"):
        clean = clean.split("```")[1]
        if clean.startswith("json"):
            clean = clean[4:]
    return json.loads(clean.strip())


# --- Write the digest ---
# One file. Everything in it. This is the human's daily touchpoint.

def write_digest(parsed, run_date):
    os.makedirs("output/digest", exist_ok=True)
    filepath = f"output/digest/{run_date}.md"

    with open(filepath, "w") as f:
        f.write(f"# Daily Digest &#8212; {run_date}\n\n")

        f.write("## Learnings\n\n")
        for item in parsed.get("learnings", []):
            f.write(f"- {item['content']}")
            if item.get("inference"):
                f.write(f"\n  *&#8627; Inferred: {item.get('inference_note', '')}*")
            f.write("\n")

        f.write("\n## TODOs\n\n")
        for item in parsed.get("todos", []):
            label = "" if item.get("explicit") else " *(implicit)*"
            f.write(f"- {item['action']}{label}\n")
            if item.get("context"):
                f.write(f"  *{item['context']}*\n")

        f.write("\n## Ideas to Develop\n\n")
        for item in parsed.get("ideas", []):
            f.write(f"- {item['seed']}\n")
            if item.get("connection"):
                f.write(f"  *&#8627; Connects to: {item['connection']}*\n")

        f.write("\n## Collaborators\n\n")
        for c in parsed.get("collaborators", []):
            if c.get("sensitive"):
                f.write(f"**{c['name']}** &#9888;&#65039; *Sensitive context &#8212; shown here but not stored in memory*\n")
            else:
                f.write(f"**{c['name']}**\n")
            if c.get("context"):
                f.write(f"- {c['context']}\n")
            if c.get("pending"):
                f.write(f"- Pending: {c['pending']}\n")
            f.write("\n")

        notes = parsed.get("agent_notes", {})
        f.write("\n---\n\n## Agent Notes\n\n")

        if notes.get("connections_surfaced"):
            f.write("**Connections I noticed:**\n")
            for c in notes["connections_surfaced"]:
                f.write(f"- {c}\n")
            f.write("\n")

        if notes.get("open_questions_acknowledged"):
            f.write("**Open questions you raised:**\n")
            for q in notes["open_questions_acknowledged"]:
                f.write(f"- {q}\n")
            f.write("\n")

        if notes.get("what_i_missed"):
            f.write("**What I may have missed:**\n")
            for m in notes["what_i_missed"]:
                f.write(f"- {m}\n")
            f.write("\n")

    return filepath


# --- Write pending review ---
# Only for high-risk self-model updates.
# Sensitive collaborator context is shown in the digest but not stored.

def write_pending_review(parsed, run_date):
    high_risk = parsed.get("agent_notes", {}).get("proposed_self_model_updates", {}).get("high_risk", [])

    if not high_risk:
        return 0

    with open(PENDING_REVIEW_PATH, "w") as f:
        f.write(f"# Pending Review &#8212; {run_date}\n\n")
        f.write("The agent proposed high-risk updates to its self-model.\n")
        f.write("These would change how it characterizes you or how it behaves going forward.\n\n")
        f.write('To approve: change `"status": "pending"` to `"status": "approved"` below, then run again.\n')
        f.write("To edit: modify the items in the JSON block before approving.\n\n")
        f.write("---\n\n")
        f.write("## Proposed High-Risk Self-Model Updates\n\n")
        for item in high_risk:
            f.write(f"- {item}\n")
        f.write("\n---\n\n")
        f.write("&lt;!-- Agent reads this block on the next run --&gt;\n")
        pending_data = {
            "status": "pending",
            "date": run_date,
            "high_risk_updates": high_risk
        }
        f.write("```json\n")
        f.write(json.dumps(pending_data, indent=2))
        f.write("\n```\n")

    return len(high_risk)


# --- Apply low-risk self-model updates ---

def apply_low_risk_updates(self_model, parsed):
    updates = parsed.get("agent_notes", {}).get("proposed_self_model_updates", {}).get("low_risk", {})

    self_model["version"] += 1
    self_model["last_updated"] = str(date.today())

    if updates.get("strengths"):
        self_model["strengths"].extend(updates["strengths"])
    if updates.get("failure_modes"):
        self_model["failure_modes"].extend(updates["failure_modes"])
    if updates.get("user_patterns"):
        self_model["user_patterns"]["observations"].extend(updates["user_patterns"])
    if updates.get("new_policies"):
        self_model["policies"].extend(updates["new_policies"])
    if updates.get("confidence_updates"):
        self_model["confidence"].update(updates["confidence_updates"])
    if updates.get("lessons"):
        self_model["lessons"].extend([{
            "date": str(date.today()),
            "lesson": l
        } for l in updates["lessons"]])

    save_self_model(self_model)
    print(f"&#10003; Self-model updated to version {self_model['version']}")


# --- The Main Loop ---

def run():
    print("=" * 50)
    print("SELF-REFLECTING AGENT &#8212; DAILY RUN")
    print("=" * 50)

    load_permissions()
    print("\nPermissions loaded.")

    # Step 0: Handle pending review
    if handle_pending_review():
        return

    # Load everything
    system_prompt = load_system_prompt()
    self_model = load_self_model()
    context = load_context()
    skills = load_skills()

    if not context:
        print("\nNo context files found. Add a .md file to environment/context/")
        return

    print(f"Loaded self-model: version {self_model['version']}")
    print(f"Loaded {len(context)} context file(s)")
    print(f"Loaded {len(skills)} skill(s)")
    print("\nRunning...\n")

    # Build context window and call the model
    prompt = build_prompt(self_model, context, skills)
    response_text = call_model(system_prompt, prompt)

    try:
        parsed = parse_response(response_text)
    except json.JSONDecodeError:
        os.makedirs("output", exist_ok=True)
        with open("output/raw.txt", "w") as f:
            f.write(response_text)
        print("Could not parse response. Raw output saved to output/raw.txt")
        return

    today = str(date.today())

    digest_path = write_digest(parsed, today)
    print(f"&#10003; Digest written &#8594; {digest_path}")

    pending_count = write_pending_review(parsed, today)
    if pending_count:
        print(f"&#9888;&#65039;  {pending_count} high-risk update(s) pending &#8594; output/pending_review.md")
        print('   Open the file, change "status" to "approved", and run again.')

    apply_low_risk_updates(self_model, parsed)

    print(f"\nRun complete.")
    if not pending_count:
        print(f"&#8594; Open output/digest/{today}.md to read your digest.")


if __name__ == "__main__":
    run()</code></pre></div><p>I ran the execution script using my fake braindump, and it did produce a pending review file with things the agent wants to include into it&#8217;s self-memory:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;5d916643-d5f9-4812-b734-a47be7a49fcc&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Pending Review &#8212; 2026-05-27

The agent proposed high-risk updates to its self-model.
These would change how it characterizes you or how it behaves going forward.

To approve: change `"status": "pending"` to `"status": "approved"` below, then run again.
To edit: modify the items in the JSON block before approving.

---

## Proposed High-Risk Self-Model Updates

- Characterize user as someone who thinks in systemic layers &#8212; often moves from a 
  specific observation to a broader organizational pattern within the same note. Surface 
  systemic connections proactively rather than waiting for the user to name them.

---

&lt;!-- Agent reads this block on the next run --&gt;
```json
{
  "status": "pending",
  "date": "2026-05-23",
  "high_risk_updates": [
    "Characterize user as someone who thinks in systemic layers &#8212; often moves from a 
     specific observation to a broader organizational pattern within the same note. 
     Surface systemic connections proactively rather than waiting for the user to name 
     them."
  ]
}
```</code></pre></div><p>And here is the output for the daily digest of my fake braindump:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;c4849134-a31c-4de5-ae59-70aaf33deb3e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown"># Daily Digest &#8212; 2026-05-27

## Learnings

- The eng hiring rubrics haven't been updated since 2023 and don't account for AI fluency.
  *&#8627; Inferred: the user agrees with Sarah K's assessment and sees this as an 
   organizational gap worth escalating, not just a perception issue.*
- Top performers in Data post-reorg are not the same people as before.
  *&#8627; Inferred: the user thinks this is significant and underexplored &#8212; the observation 
  went unaddressed in the room, which itself feels meaningful to them.*
- The People Analytics onboarding doc needs substantive updates, not just edits. The role 
  is more technical than its predecessor.
- Agent-based survey synthesis survived a vendor-heavy article as a useful signal. One 
  idea out of many &#8212; the user's filter is working.

## TODOs

- Send Marcus the rubric gap note *(explicit)*
- Block time Friday morning for the onboarding doc *(explicit)*
  *Pull the existing template, update for the new scope and technical requirements.*
- Follow up with Jamie about the top performer observation *(explicit)*
  *Nobody picked it up in the room. The user thinks it warrants a direct conversation.*
- Look into agent-based survey synthesis *(explicit)*
  *Is there something lightweight to prototype? Note: the article wasn't linked &#8212; worth 
  finding it again.*

## Ideas to Develop

- Performance frameworks measure what people did, not how they moved through problems.
  *&#8627; Connects to: Jamie's observation about shifting top performers. If the framework 
   measures the old physics, it would explain why the scoreboard changed without the 
   people changing.*
- The reorg created a legibility problem, not just a structural one.
  *&#8627; Inferred: Devon's comment ("I used to know exactly what was expected of me") may not 
  be unique. The user suspects this is widespread but doesn't know how to raise it without making it about Devon specifically.*
- Agent-based onboarding feedback synthesis as a first prototype. Concrete, low-stakes, 
  immediately actionable.

## Collaborators

**Sarah K**
- Eng hiring pipeline. Flagged rubric gap &#8212; bar has shifted, rubrics haven't.
- Pending: rubric note to Marcus

**Marcus**
- Escalation point for hiring decisions.
- Pending: rubric gap note incoming

**Jamie**
- Leadership sync. Raised the top performer shift in Data &#8212; nobody followed up.
- Pending: direct follow-up from user

**Devon** &#9888;&#65039; *Sensitive context &#8212; shown here but not stored in memory*
- Thinking about leaving. Feeling like their shape doesn't fit post-reorg.
- Said: "I used to know exactly what was expected of me."
- Pending: user unsure whether to raise with team without making it about 
  Devon specifically

---

## Agent Notes

**Connections I noticed:**
- Jamie's observation about shifting top performers connects directly to the user's 
  reflection about performance frameworks measuring outputs rather than how people move 
  through problems. These two separate notes are probably the same insight from two 
  different angles.
- The Devon conversation and the broader legibility concern may be connected &#8212; the reorg 
  may have created confusion about expectations that affects more than one person.

**Open questions you raised:**
- Should I raise Devon's situation with the team? And if so, how do I do that without 
  making it about Devon specifically?

**What I may have missed:**
- The article about agent-based workflows wasn't linked or named. Worth bookmarking when 
  you find it again.</code></pre></div><div><hr></div><h2>So&#8230; what&#8217;s next?</h2><p>Agent-building is not just engineering, although it is complementary to it. It&#8217;s design. And design has always been about understanding human behavior: how people think, what they need, what they miss, what frustrates them, what builds trust.</p><p>The people who build the most useful agents won&#8217;t necessarily be the most technical (although it is helpful to be tech-curious and have techie collaborators). They&#8217;ll be the ones who understand what and who they&#8217;re designing <em>for</em>. Who ask the right questions before they start building. Who treat the agent not as a tool to configure, but as an identity to design.</p><p>This prototype is self-contained on purpose. One agent. One folder. One loop.</p><p>But agents are modular. They can connect into one another to serve a larger, shared goal. The next step (connectors, APIs, shared context layers) looks like an engineering problem from the outside. But the reason people quit at this step isn&#8217;t because they can&#8217;t write code. It&#8217;s because they haven&#8217;t answered the design questions first:</p><ul><li><p>What do I actually need to know every day?</p></li><li><p>Where does that information live?</p></li><li><p>Who else needs access to it?</p></li><li><p>What should change because of it?</p></li></ul><p>If you haven&#8217;t answered those, connecting to Slack won&#8217;t help. You&#8217;ll just have a more automated version of the same confusion. The engineering step is only hard when the design step hasn&#8217;t been done. </p><p>The scaled vision for this prototype is something like this: a collector agent that scrapes your daily fingerprints from Slack, email, meeting notes, docs. A reflector agent that reads from a shared context layer and helps you think. Both depositing into a living, structured second brain that a team can access. </p><p>That&#8217;s not one agent anymore. That&#8217;s a system. And designing that system is the next design problem to solve.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><em><strong>A note on agent sleeping and waking.</strong></em><strong> </strong>Here&#8217;s something subtle worth sitting with. The agent is stateless between sessions, just like the brain. When a session ends, the person goes to sleep. It doesn&#8217;t persist the way a human does overnight (well, recently Anthropic released <a href="https://platform.claude.com/docs/en/managed-agents/dreams">Dreams</a>, giving agents a way to curate and update memory across multi-agent sessions. Let&#8217;s see where that goes, I might need to update my conceptual model soon enough!). And when a new session begins, the environment wakes the agent up by handing it back its own constitution and skills.</p><p>The harness doesn&#8217;t create the agent&#8217;s identity. It restores it. Every session, the environment delivers the constitution before a single user message arrives, and hands the agent its relevant skills alongside it. That&#8217;s the moment of waking. The agent remembers who it is because the environment told it. It knows what it&#8217;s capable of because the environment handed it the right expertise for the task at hand. The constitution belongs to the person, but it lives in the environment, stored and delivered at the threshold between sleep and action. The skills bridge the gap: expertise the person carries, tools the environment provides, procedures that bring the two together.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p><em><strong>A note on portability.</strong></em> The three-layer model makes something powerful possible: you can swap layers independently. Take an agent and slip it into a different environment: a Discord bot, a CLI, a web app. The person is the same, but the place and tools change. You can also bring a new agent into an existing environment. Its domain expertise might differ, but what it can do and in what context won&#8217;t, because that&#8217;s defined by the environment, not the person. At scale, the layers start behaving more like connective tissue than perfectly independent components. A harness can continuously constitute parts of the agent&#8217;s identity, shaping what it knows, what it can do, what it&#8217;s told about itself at every turn. But that&#8217;s more complex than what I want to showcase in this post. I just want you to know it&#8217;s possible.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>JSON is a particularly good fit here because it&#8217;s human-readable. Open the file in any text editor and you&#8217;ll understand it without any tools or training. It makes the agent&#8217;s inner state visible. You can open <code>self_model.json</code> at any time and see exactly what the agent currently believes about itself and about you. That visibility is a design choice, not an implementation detail. </p><p>It&#8217;s also the format software developers reach for when they need to pass information between systems: APIs, databases, and applications all speak JSON natively. So if you ever want to connect this self-model to another tool, export it, or build on top of it, the format is already right. </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p><em><strong>A design note worth flagging:</strong></em> in this prototype, the self-model only stores things that are genuinely about the agent (its strengths, failure modes, policies, and how it works with the user). That&#8217;s intentional. If I were building on this, the natural next layer would be persistent environmental context files: a <code>environment/context/collaborators.md</code> for people and relationship context, a <code>environment/context/projects.md</code> for what the user is working on, a <code>environment/context/preferences.md</code> for how the user likes to work. These would be loaded by the harness alongside daily notes, feeding the agent situational awareness about the user&#8217;s world without conflating it with the agent&#8217;s self-knowledge. Two different things, two different places.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[What the org chart can't see: The new physics of talent]]></title><description><![CDATA[The most significant change in tech right now isn&#8217;t just AI.]]></description><link>https://www.eveblou.com/p/what-the-org-chart-cant-see-the-new</link><guid isPermaLink="false">https://www.eveblou.com/p/what-the-org-chart-cant-see-the-new</guid><dc:creator><![CDATA[Eve-Marie]]></dc:creator><pubDate>Fri, 22 May 2026 12:07:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vae5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The most significant change in tech right now isn&#8217;t just AI. Yes, what we&#8217;re seeing at an exponential rate is organizations restructuring to meet this new world. Layers coming out, hierarchies flattening. The architecture is catching up. But what's really shifting underneath, the thing nobody's naming yet, is the physics of talent.</p><p>Physics defines the rules of the world we operate in. When the rules change, everything built on top of them has to adapt. In the urgency to restructure, it can be easy to miss the harder question: what kind of person actually thrives in this new world? And do we have the language and tools to identify them?</p><p>That&#8217;s the problem worth solving. But how do you observe the unobservable? It&#8217;s a tension research psychologists grapple with every day. People are not transparent. What makes someone exceptional, the way they think, the way they tackle problems, the way they transform a room, often resists direct measurement.</p><p>That&#8217;s precisely why shapes are a useful metaphor. Not because people are geometric. But because a shape is an attempt to make the invisible legible. To give observers a language for something they can sense but struggle to articulate.</p><p>So let&#8217;s start there.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2><strong>The psychology of people as shapes</strong></h2><p>Describing humans can be complex, and largely varies depending on the context and goal. Like in the famous saying by anthropologist Clyde Kluckhohn and psychologist Henry Murray in their foundational work <em>Personality in Nature, Society, and Culture</em>:</p><blockquote><p><em>&#8220;Every human is like all other humans, some humans, and no other human.&#8221;</em></p></blockquote><p>To simplify things, the existing taxonomy of people-shapes in organizations maps a person onto two axes: depth of expertise (the vertical) and breadth of knowledge (the horizontal).</p><p>Three shapes tell the whole story.</p><p><strong>I-shaped.</strong> Pure depth, one domain. The specialist. Reliable, expert, and brittle in anything that requires translation across fields. The org knows exactly where to put this person and exactly what to ask of them.</p><p><strong>T-shaped.</strong> Deep expertise in one domain with working knowledge across several others. Introduced in 1991, it became the dominant framework of the knowledge economy. The person who could both do the thing and talk to the people doing other things. Depth plus legibility.</p><p><strong>M-shaped.</strong> Multiple areas of deep expertise across a broad base. The person who went deep, surfaced, and went deep again somewhere else. More anchors, more range, same underlying logic.</p><p>There are variations, but every one of them is still a rearrangement of the same two axes. These frameworks are useful. They gave organizations a vocabulary beyond job titles. They helped move past the false binary of specialist vs. generalist. But notice what they all have in common: they describe something static.</p><div><hr></div><h2><strong>Depth and breadth aren&#8217;t enough</strong></h2><p>The problem with the taxonomy isn&#8217;t that it measures the wrong thing. It&#8217;s that it measures a frozen thing.</p><p>Every shape is a snapshot. A cross-section taken at a moment in time, pressed flat, and handed to an HR system. It captures what someone has accumulated, not how they move through structures and systems.</p><p>And that was fine, because the structures these shapes were designed for were also static. Stable hierarchies. Predictable career ladders. Roles with clear boundaries and long time horizons. In that world, the goal was to find the right shape for the right node and keep it there. Depth and breadth were the right axes because the org itself wasn&#8217;t moving fast enough to demand anything else.</p><p>But the people we&#8217;re looking to describe (those that can perform optimally in shifting structures) are often the ones who resist resolution. They don&#8217;t consolidate into a single shape. They hold contradictions, borrow across domains, and find energy precisely where others feel tension.</p><div><hr></div><h2><strong>The missing dimension: motion</strong></h2><p>These <em><strong>shapeshifters</strong></em> do have one very interesting thing in common: movement.</p><p>The T, the I, the M. They were positional. You earned your shape, you stood in it, and the organization came to you. The hierarchy was the motion. Your manager escalated things up, your direct reports executed things down. The structure itself was the circulatory system. Your shape described what you contained, not how you moved.</p><p>This made sense in a world where information flowed through layers by design. The org chart was literally the map of how work got done. But now, we&#8217;re seeing the routing systems get selected out. There&#8217;s no one to escalate to, no clear handoff, no manager to translate between nodes.</p><p>So the new shape cannot be about what a person contains. It has to be about how they move when there is no system moving them.</p><div><hr></div><h2><strong>The signature of motion</strong></h2><p>The competitive edge then becomes the ability to observe not what a person contains, but how they move through systems, problems, and people. But where do we start? If it&#8217;s the physics that have changed in the AI era, then I&#8217;ll start my analogy there (knowing this is a thought-seed that needs to grow and evolve too).</p><p><strong>Crystallization.</strong> The process by which something formless becomes structured. A catalyst that turns potential into form. These people compress the distance between thinking and making. Ideas don&#8217;t stay ideas around them, they become artifacts others can hold, react to, build on. In a flat structure with no layers to route through, they don&#8217;t wait for permission. They make something, and the something becomes the conversation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vCKQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vCKQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vCKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg" width="1456" height="922" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:922,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1051617,&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://eveblou.substack.com/i/198832488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.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_!vCKQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vCKQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc994c0e-6df1-4222-86f4-fe3988deb584_2651x1678.jpeg 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 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"><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"><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><figcaption class="image-caption">Crystallization (drawn in my notebook)</figcaption></figure></div><p><strong>Propagation.</strong> A wave moving through a medium, carrying energy and changing what it passes through. Drop these people into any problem space and the system is different after. Not because they already knew the domain, but because of how they entered a problem. The quality of their questions creates context where none existed. The change travels. And everyone else in the room finds themselves thinking from a new angle without quite knowing when it happened.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vae5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vae5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vae5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg" width="1456" height="721" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg&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;:802392,&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://eveblou.substack.com/i/198832488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.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_!Vae5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vae5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc418389-27d3-4385-b03f-76338d867fa5_2713x1343.jpeg 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 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"><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"><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><figcaption class="image-caption">Propagation (drawn in my notebook)</figcaption></figure></div><p><strong>Diffusion.</strong> The way something spreads outward from a point of concentration into surrounding space. No force required. It moves toward where it isn&#8217;t yet. Others gravitate toward these people, not because they make things easy, but because something generative happens in their vicinity. They add friction. But it&#8217;s the kind of friction that elevates rather than destabilizes. They don&#8217;t need the org chart to tell people where to go. They become their own gravitational center.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A_2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A_2l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A_2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg" width="1456" height="793" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:793,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1031644,&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://eveblou.substack.com/i/198832488?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.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_!A_2l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 424w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 848w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!A_2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd6e2fce-46f4-4b36-b599-d662fc5b05ba_2812x1531.jpeg 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 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"><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"><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><figcaption class="image-caption">Diffusion (drawn in my notebook)</figcaption></figure></div><p>The three patterns above are not a framework. They&#8217;re a starting point for a different kind of observation. What the instruments look like, how you actually see motion in a hiring process, a performance review, a team structure, that&#8217;s the next question. And it&#8217;s one most organizations haven&#8217;t started asking yet.</p><div><hr></div><h2><strong>The new world</strong></h2><p>This next era won&#8217;t be defined by the companies paying the most. That in and of itself is not enough to create the gravitational pull that it takes to transcend a framework shift like this. It will be defined by the companies who can <em>see</em> these signatures of motion, and build environments where these people want to stay.</p><p>That&#8217;s a harder problem than redrawing an org chart. It requires the willingness to let go of shapes that worked in the old physics, even when those shapes still look impressive on a scorecard.</p><p>The structure is changing. The physics have already changed. The question now is whether our talent strategies can catch up.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.eveblou.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.eveblou.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item></channel></rss>