<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Creativity on scripting.pro</title><link>https://scripting.pro/tags/creativity/</link><description>Recent content in Creativity on scripting.pro</description><image><title>scripting.pro</title><url>https://scripting.pro/images/og-featured.png</url><link>https://scripting.pro/images/og-featured.png</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 17 Apr 2026 10:00:00 -0400</lastBuildDate><atom:link href="https://scripting.pro/tags/creativity/index.xml" rel="self" type="application/rss+xml"/><item><title>The Anatomy of a Eureka, Part I: Why Some Metaphors Land and Others Don't</title><link>https://scripting.pro/posts/eureka-part1/</link><pubDate>Thu, 16 Apr 2026 10:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part1/</guid><description>The distance between domains explains almost nothing about whether a creative idea will be useful. What actually predicts applicability is the granularity of the transferred unit, and controlling it is a compression problem with discrete levels.</description><content:encoded><![CDATA[<p><em>We may assume that a creative idea is a distant analogy, connecting two things no one had connected before. That assumption is wrong. The distance between domains explains almost nothing about whether an idea will be novel, useful, or transformative.</em></p>
<p>What actually matters is far less intuitive, and it changes how we should think about LLMs as instruments for creativity.</p>
<hr>
<h2 id="the-broken-promise-of-the-creative-prompt">The Broken Promise of the Creative Prompt</h2>
<p>Ask any major LLM for novel solutions to a real problem and you usually get back a polished recombination of known best practices.</p>
<p>Take this question: <em>How can we better prevent technical debt in large enterprise IT projects with fixed dates and budgets?</em></p>
<p>You&rsquo;ll typically receive: short Agile sprints, 15-25% refactoring buffers, SonarQube, &ldquo;stop the line&rdquo; culture, and KPIs in vendor contracts. Useful and professional, but entirely predictable.</p>
<p>If you&rsquo;re looking for established best practices, this is exactly what you want. The model is doing what it was trained to do, interpolating the most statistically probable patterns in its training data, and for consolidating known solutions that is a strength.</p>
<p>But if you&rsquo;re looking for a genuinely new idea, something no one has tried, then that same interpolation is the obstacle. The model is fine; we&rsquo;re asking it to perform the wrong operation.</p>
<hr>
<h2 id="directed-metaphorical-association">Directed Metaphorical Association</h2>
<p>Years ago, while researching creative systems, I started experimenting with a different approach: directed metaphorical association. Instead of asking for solutions directly, you identify the strong semantic concepts in a problem, pull rich metaphors from distant domains, transfer properties across the gap, and let the human judge what emerges.</p>
<p>The logic is simple. If you ask an LLM to solve a technical debt problem, it searches its training data for content <em>about</em> technical debt. You get back what the industry already knows. But if you ask it to find structural parallels between technical debt and, say, scuba diving, the model is forced to traverse a completely different region of its knowledge. The connections it finds can&rsquo;t be recycled best practices, because no one has written about the intersection of nitrogen absorption and code quality.</p>
<p>At the time I developed this, it was all manual. Today, the attention mechanism in Transformer-based LLMs lets us scale this approach dramatically: the model can compute semantic relationships across domains far richer than anything I could code by hand.</p>
<p>But scaling it revealed something I didn&rsquo;t expect. The results weren&rsquo;t uniformly creative. Some metaphorical transfers landed immediately and felt actionable. Others were intellectually fascinating but resisted any practical application. At first I assumed this was noise, since some metaphors just work better than others. But the pattern was too consistent to be random, and it turned out to be more interesting than the ideas themselves.</p>
<hr>
<h2 id="same-problem-directed-metaphors">Same Problem, Directed Metaphors</h2>
<p>When I applied the method to the technical debt question, directing the LLM to generate metaphorical associations from distant domains rather than recombine known practices, four ideas emerged:</p>
<p><strong>Directed fermentation.</strong> In cheesemaking, you don&rsquo;t fight bacterial activity; you control which bacteria dominate. The distinction that matters is controlled versus uncontrolled, not clean versus dirty. A bad cheese isn&rsquo;t a cheese with bacteria; it&rsquo;s a cheese with the wrong bacteria.</p>
<p>Transfer: maintain a catalog of authorized shortcuts (a &ldquo;starter culture&rdquo;), each with its documented lifespan and self-replacement rule. Debt that follows the starter is tolerated. Debt outside it is rejected. You stop trying to eliminate debt and start trying to control <em>which</em> debt lives in your system.</p>
<p><strong>Mandatory decompression.</strong> In scuba diving, nitrogen dissolves in the blood under pressure. That&rsquo;s physics, not a negotiation. If the diver ascends too fast, the nitrogen forms bubbles. Since preventing nitrogen absorption is impossible under pressure, the solution is decompression stops, calculated mathematically and non-negotiable.</p>
<p>Transfer: accept that fixed deadlines and budgets <em>will</em> dissolve debt into the codebase. That&rsquo;s a law of development under pressure, not a failure of discipline. Model debt accumulation as a calculable variable and insert mandatory decompression windows whose length is determined by the model, not by managerial goodwill. You don&rsquo;t negotiate the laws of physics.</p>
<p><strong>Programmed selective amnesia.</strong> The brain actively prunes weak synaptic connections during sleep. Forgetting is a survival mechanism, not a malfunction. Without this pruning, the brain saturates, loses its ability to discriminate, and starts treating noise as signal.</p>
<p>Transfer: at fixed intervals, delete entire modules and force them to be rewritten from their behavioral contract alone. This sounds radical, but the point is what the deletion reveals. Code that cannot be reconstructed from its spec exposes that the <em>spec</em> was insufficient: the real debt was in the specification all along, not in the code.</p>
<p><strong>Unrehearsed ensemble.</strong> Jazz bands booked for festival slots with non-negotiable stage times cram complex new arrangements into minimal rehearsal hours. Every player memorizes the charts individually. But onstage, the improvisation falls apart into disjointed solos, because knowing the material individually is not the same as having internalized it as shared group intuition.</p>
<p>Transfer: a team where every developer knows the codebase individually can still produce incoherent architecture, because no one has built the shared intuition of how the system wants to evolve. The debt lies in the absence of collective internalization, which only emerges from working together on the same problems over time, rather than in any individual&rsquo;s competence.</p>
<hr>
<h2 id="something-is-off">Something Is Off</h2>
<p>Read those four ideas again. Two of them, fermentation and decompression, feel immediately actionable. You could present them to a project director tomorrow and have a productive conversation. They fit inside the existing mental model of how IT projects work; they just reframe a specific aspect of it.</p>
<p>The other two, selective amnesia and the unrehearsed ensemble, are more demanding. They don&rsquo;t reframe an aspect of the existing model. They ask you to question what you consider the primary artifact (is it the code or the spec?), or what &ldquo;team competence&rdquo; even means (is it individual knowledge or collective intuition?). You can&rsquo;t just &ldquo;apply&rdquo; them. You&rsquo;d need to rethink something basic first.</p>
<p>This isn&rsquo;t a question of quality. All four are intellectually rich. But they operate at different levels, and that difference is consistent and reproducible enough to be worth understanding.</p>
<hr>
<h2 id="the-red-herring-semantic-distance">The Red Herring: Semantic Distance</h2>
<p>The obvious explanation would be that some metaphors are simply &ldquo;too far&rdquo; from the target domain. That&rsquo;s the classical thesis from Mednick (1962): close associations are banal, distant associations are incomprehensible, and creativity sits in an optimal zone in between. It&rsquo;s an elegant idea, and it has dominated the creativity literature for over sixty years.</p>
<p>But it doesn&rsquo;t explain what we&rsquo;re seeing here. Fermentation comes from biology. Selective amnesia comes from neuroscience. Both are roughly equidistant from software engineering. Yet the first is immediately applicable and the second is not.</p>
<p>If distance were the relevant variable, ideas from similarly distant domains should behave similarly. They don&rsquo;t, so something else is at work.</p>
<hr>
<h2 id="first-finding-transfer-granularity">First Finding: Transfer Granularity</h2>
<p>What separates the two groups is the <em>size</em> of what gets transferred, not distance, since both draw from domains equally far from software engineering.</p>
<p>Look at what each idea actually imports from its source domain:</p>
<p>Fermentation imports a single rule: &ldquo;the relevant distinction is not presence versus absence, it&rsquo;s controlled versus uncontrolled.&rdquo; One causal relationship, stripped of all cheesemaking context. You can plug it directly into a conversation about technical debt without asking anyone to change how they think about software.</p>
<p>Decompression imports a single rule as well: &ldquo;accumulation under pressure is a physical law, and the stops are calculable.&rdquo; The diving context is gone. What remains is a structural insight that maps cleanly onto fixed-deadline projects.</p>
<p>Now look at what the unrehearsed ensemble imports. Instead of a single rule, it brings a <em>system of relationships</em>: the idea that individual competence does not produce collective competence, that shared intuition is a distinct artifact that only emerges from sustained joint practice, and that the absence of this artifact produces incoherence even when every individual performs well. To apply this to a software team, you need to accept all of these premises simultaneously. You&rsquo;re not plugging in a rule; you&rsquo;re redefining what &ldquo;team competence&rdquo; means (a separate thing that either exists or doesn&rsquo;t, rather than the sum of individual skills).</p>
<p>Selective amnesia does the same thing. It doesn&rsquo;t just say &ldquo;delete code sometimes.&rdquo; It requires you to reconceptualize what the primary artifacts are, to accept that code is expendable and specs are foundational, to rethink the relationship between implementation and contract. That&rsquo;s a system of interlocking ideas, not a single transferable rule.</p>
<p>Semantic distance matters: it ensures the pieces are genuinely different from what the target domain already knows. But the variable that predicts whether a metaphorical idea will be <em>immediately useful</em> is the granularity of the transferred unit. Single causal rules are portable. Systems of relationships require a worldview shift.</p>
<p>Both can be valuable, but they serve different purposes, ask different things of the audience, and land on very different timescales.</p>
<hr>
<h2 id="second-finding-compression-at-the-right-level">Second Finding: Compression at the Right Level</h2>
<p>If granularity is what matters, the practical question becomes: how do you control it? How do you reliably extract single causal rules from a rich source domain instead of accidentally importing entire systems?</p>
<p>The answer is compression.</p>
<p>When you extract a causal rule from a source domain, you&rsquo;re performing lossy compression in the information-theoretic sense (keeping only the causal skeleton, discarding everything else). You take a rich domain, scuba diving with its physics, decompression tables, equipment protocols, certification culture, and accident case law, and you compress it down to a bare skeleton: &ldquo;inevitable accumulation under pressure → calculated mandatory stops.&rdquo; Everything else gets discarded. What remains is portable.</p>
<p>What I didn&rsquo;t expect is that this compression doesn&rsquo;t work as a smooth dial you can turn gradually. It has discrete levels, like quantization of a signal (steps, not a ramp). In practice, I consistently see three distinct levels:</p>
<p><em>The raw metaphor.</em> &ldquo;Technical debt is like cancer.&rdquo; This is barely compressed at all. The metaphor arrives with its full baggage: diagnosis, staging, treatment, remission, relapse, death. You&rsquo;re not importing a rule; you&rsquo;re importing a <em>scenario</em>, and the scenario drags in properties that don&rsquo;t map to the target domain at all. (Does technical debt metastasize? Does it have remission? The metaphor implies yes, but the reality is more complicated.)</p>
<p><em>The causal rule.</em> &ldquo;Damage at a threshold triggers an irreversible state transition.&rdquo; Now the source domain&rsquo;s vocabulary has disappeared entirely. You can&rsquo;t tell whether this came from botany, metallurgy, or nuclear physics; it&rsquo;s a pure structural relationship. It&rsquo;s abstract enough to travel across any domain boundary, but concrete enough to generate specific ideas when you apply it to a new context.</p>
<p><em>The philosophical principle.</em> &ldquo;Systems under constraint reach equilibria.&rdquo; This is over-compressed. It&rsquo;s true of everything: thermodynamics, economics, psychology, traffic. Precisely because it applies everywhere, it generates nothing specific anywhere. It&rsquo;s a tautology dressed as insight.</p>
<p>The intermediate level, the bare causal rule, is the only one that is simultaneously abstract enough to leave the source domain and concrete enough to land in the target domain and generate something actionable.</p>
<blockquote>
<p><strong>Too little compression, and you import baggage. Too much, and you import nothing.</strong></p>
</blockquote>
<p>Useful creativity, it turns out, is a compression problem, and the sweet spot is a discrete level rather than a point on a continuous dial.</p>
<hr>
<h2 id="what-this-means">What This Means</h2>
<p>These two findings already change how you use an LLM for creative work.</p>
<p>If you want ideas that are immediately actionable, direct the model to extract <em>single causal rules</em> from distant domains, stripped of all source vocabulary. Force compression to the intermediate level. If you can still tell which domain a rule came from, it&rsquo;s not compressed enough. If you can&rsquo;t imagine applying it to anything specific, it&rsquo;s compressed too far.</p>
<p>But when I started applying this systematically, I ran into something I didn&rsquo;t expect. I had a catalog of beautifully compressed rules. Each one mapped onto the target problem with uncomfortable precision. And yet I still couldn&rsquo;t turn any of them into a solution. Understanding <em>how</em> a problem works turned out to be a completely different operation from knowing <em>what to do about it</em>. That gap, and what fills it, is what Part II is about.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>The Anatomy of a Eureka, Part II: Where the Eureka Actually Happens</title><link>https://scripting.pro/posts/eureka-part2/</link><pubDate>Thu, 16 Apr 2026 11:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part2/</guid><description>Causal rules are diagnoses, not solutions. Turning a diagnosis into a genuine invention requires two missing operations, inversion and composition, formalized here as the Extraction-Inversion-Composition (EIC) framework.</description><content:encoded><![CDATA[<p><em>Part I ended with a puzzle. I had a method that reliably extracted powerful ideas from distant domains, but some of those ideas were immediately actionable and others resisted application. The difference turned out to be granularity and compression: single causal rules, stripped bare, are portable. Systems of relationships are not. But even after solving that puzzle, something was still missing.</em></p>
<hr>
<h2 id="the-limitation-i-didnt-see">The Limitation I Didn&rsquo;t See</h2>
<p>By the end of Part I, I could reliably extract clean, compressed causal rules from distant domains. Rules like &ldquo;accumulation under pressure is physics, not a choice&rdquo; or &ldquo;the distinction that matters is controlled versus uncontrolled.&rdquo; Each one a precise diagnosis of how a problem works.</p>
<p>But that&rsquo;s exactly what they were: diagnoses, X-rays of the pathology rather than solutions.</p>
<p>I spent a while assuming the solution would naturally follow from understanding the cause. It doesn&rsquo;t. Understanding that nitrogen dissolves in blood under pressure doesn&rsquo;t tell you to invent decompression stops. The leap from &ldquo;here&rsquo;s how the problem works&rdquo; to &ldquo;here&rsquo;s how to break the mechanism&rdquo; requires a separate act, one that is creative in a way the diagnosis is not.</p>
<p>When I systematized the method by asking an LLM to extract compressed causal rules from many distant domains at once, I could see this limitation clearly. The results were clean and powerful:</p>
<p><em>&ldquo;Functional-but-carrying agents propagate the problem because there is no incentive to detect them.&rdquo;</em> (from epidemiology)</p>
<p><em>&ldquo;Repeated sub-critical stress accumulates invisibly until failure occurs without proportional warning.&rdquo;</em> (from metallurgy)</p>
<p><em>&ldquo;Control by outcome alone makes it impossible to distinguish systemic success from accidental success.&rdquo;</em> (from fermentation science)</p>
<p>Each maps onto technical debt with uncomfortable precision. The epidemiological rule describes how &ldquo;working&rdquo; code that carries hidden debt propagates undetected. The metallurgical rule describes how small daily compromises accumulate into sudden, catastrophic failures. The fermentation rule describes how testing only the final product hides whether the <em>process</em> was sound. Yet for all their diagnostic value, not one of them tells you what to <em>do</em>.</p>
<hr>
<h2 id="the-missing-operation-inversion">The Missing Operation: Inversion</h2>
<p>The creative act that turns a diagnosis into a solution is <em>inversion</em>: deliberately breaking the causal chain at a chosen point.</p>
<p>In its simplest form, a diagnosis says &ldquo;A causes B, which causes C.&rdquo; Inversion asks what happens if I prevent A from causing B, or if I let B happen but prevent it from causing C. Each break point produces a different family of solutions, often of completely different nature.</p>
<p>In practice this is less obvious than it sounds, because a single causal chain can be broken at <em>multiple</em> points, and the choice of where to break determines not just the solution but its entire character.</p>
<p>Take the epidemiological rule: &ldquo;functional-but-carrying agents propagate the problem because there is no incentive to detect them.&rdquo; There are three links in this chain, and each one is a potential target:</p>
<p><strong>Break at link 1</strong>: make the carrying agents non-functional. In software terms, design code so that debt-carrying modules <em>stop working</em> after a defined period. The debt itself triggers a forced replacement. This is a radical, architectural solution that changes the infrastructure.</p>
<p><strong>Break at link 2</strong>: create incentives to detect, even when everything works. In software terms, reward teams for discovering latent debt rather than for delivering features. Don&rsquo;t wait for symptoms; actively hunt for carriers. This is an organizational, incentive-based solution that changes the reward structure.</p>
<p><strong>Break at link 3</strong>: accept propagation, but make its pathways visible. In software terms, don&rsquo;t try to prevent debt from spreading; instead, instrument the codebase so that every propagation path is traced in real time. When something breaks, you know exactly which &ldquo;carrier&rdquo; transmitted the problem. This is an observational solution that changes what you can see.</p>
<p>One diagnosis yields three completely different solutions. The choice of <em>where</em> to break the chain is itself a creative decision that depends on the context, the constraints, and the appetite for disruption.</p>
<p>This is the operation that was missing from my original method. Extraction gives you a diagnosis. Inversion gives you families of possible solutions. But I wasn&rsquo;t done, because the most powerful ideas I encountered weren&rsquo;t single inversions. They were <em>combinations</em>.</p>
<hr>
<h2 id="fourth-finding-novelty-is-in-the-composition">Fourth Finding: Novelty Is in the Composition</h2>
<p>Here is the central reversal of everything I thought I knew about creativity.</p>
<p>The entire creativity literature since Mednick (1962) has focused on the <em>transfer</em> as the source of novelty, on the assumption that the more distant the connection between domains, the more creative the idea. My own earlier research operated on this assumption.</p>
<p>What experimentation with LLMs at scale revealed is that distance is only a <em>necessary condition</em>. It ensures that the pieces you extract are sufficiently different from one another. But the novelty, the actual Eureka, doesn&rsquo;t reside in any single extraction or any single inversion. It resides in the <em>composition</em>: the moment you assemble inversions from multiple, unrelated domains into a recipe that is specific to the target problem. The individual pieces aren&rsquo;t surprising; the assembly is what no one has seen before.</p>
<p>In my own work using structural analogy as a diagnostic tool for organizations, I observe exactly this. When I import rules from biology, law, and neuroeconomics to analyze an organizational dysfunction, no individual rule surprises the domain expert. A biologist knows the first. A lawyer knows the second. An economist knows the third. What produces genuine insight is the <em>combination</em>: the specific way these rules interact when applied simultaneously to a context none of them were designed for.</p>
<p>Let me make this concrete with the technical debt example. Take two inversions from different rules:</p>
<p>From the epidemiological rule, break at link 2: <em>create an incentive to detect even when everything functions normally.</em></p>
<p>From the fermentation rule: <em>the relevant distinction is not presence versus absence, it&rsquo;s controlled versus uncontrolled.</em></p>
<p>Now assemble them. You get something that, as far as I can tell, doesn&rsquo;t exist in the current IT literature: <strong>reproductibility as the metric of code health.</strong></p>
<p>A module is healthy not because it works, nor because its tests pass, but because two independent developers, starting from the same specification, would produce structurally similar code. If they wouldn&rsquo;t (if the result depends heavily on who wrote it), then the module is a functional-but-carrying agent. It works, but its construction process was <em>uncontrolled</em>. It passed the outcome test while failing the process test.</p>
<p>Think about what this does. You&rsquo;re no longer looking for bugs or measuring test coverage. You&rsquo;re measuring whether the <em>process</em> that produced the code was controlled or accidental. The fermentation frame redefines <em>what</em> you&rsquo;re looking for. The epidemiological inversion tells you <em>when</em> to look: precisely when everything appears fine.</p>
<p>Neither inversion alone produces this idea. The fermentation rule alone gives you a philosophical reframe, interesting but abstract. The epidemiological inversion alone gives you a detection strategy, useful but directionless. The invention is the <em>recipe</em>: reproductibility as a metric, triggered by the absence of alarm signals, designed to catch uncontrolled process masquerading as healthy output. It emerged from the composition, not from either piece.</p>
<hr>
<h2 id="fifth-finding-the-solution-exposes-the-context">Fifth Finding: The Solution Exposes the Context</h2>
<p>There&rsquo;s one more thing I got wrong initially, and it matters.</p>
<p>My first instinct, after developing the model, was to add a filtering step: take the composed ideas and check which ones are compatible with the target context. &ldquo;This wouldn&rsquo;t work here because of regulatory constraint X; eliminate it.&rdquo; &ldquo;This contradicts our governance model; eliminate it.&rdquo; Standard feasibility analysis.</p>
<p>That instinct is a trap. A sufficiently compelling solution doesn&rsquo;t get filtered by the context. It <em>exposes</em> the context. When a good idea collides with an organizational, regulatory, or cultural constraint, there are two readings: either the idea is unrealistic, or the constraint itself deserves to be questioned.</p>
<p>The most transformative Eureka is not &ldquo;this solution works in my world&rdquo; but &ldquo;this solution is so compelling that I&rsquo;m willing to change my world to make it work.&rdquo; The friction between the idea and the context is a <em>diagnostic</em> of which constraints are actually serving you and which ones have outlived their purpose, not a bug in the creative process.</p>
<p>This has happened before at industry scale. Agile was not &ldquo;applicable&rdquo; in the world of waterfall. It didn&rsquo;t fit the existing governance, contracts, or PMO structure. But it exposed that waterfall rested on a false assumption: that you can fully specify a system before building it. DevOps was not &ldquo;applicable&rdquo; in organizations where development and operations were separate silos with separate incentives. But it exposed that the separation itself was the root cause of deployment failures. In both cases, the idea didn&rsquo;t adapt to the context. The context restructured itself around the idea, because the idea was compelling enough to justify the cost of change. Entire organizations rewrote their processes, their team structures, their governance models. They did so not because a consultant told them to, but because the solution showed the constraints to be obstacles rather than laws.</p>
<blockquote>
<p><strong>The idea didn&rsquo;t adapt to the context. The context restructured itself around the idea.</strong></p>
</blockquote>
<p>The same mechanism operates at smaller scales. In my work at a major financial institution regulated by federal and provincial authorities, I&rsquo;ve seen a creative solution to a development process problem run directly into a regulatory rule that everyone assumed was immutable. But the solution was transformative enough to create the will to engage the regulator in a conversation about whether that rule was still serving its original purpose. Instead of the constraint killing the idea, the idea questioned the constraint. And the list of constraints exposed became a deliverable as valuable as the solution itself.</p>
<hr>
<h2 id="the-complete-model">The Complete Model</h2>
<p>Creativity, then, is not a single operation. It is a sequence of three, which I&rsquo;ll call the <strong>Extraction-Inversion-Composition framework</strong> (EIC):</p>
<p><strong>Extraction.</strong> Compress distant domains into minimal causal rules at the right discrete level: abstract enough to be portable, concrete enough to be operational. This is the preparatory step. LLMs do it extraordinarily well.</p>
<p><strong>Inversion.</strong> Identify where each causal chain can be broken. Each breakpoint opens a family of solutions of a different nature. The choice of breakpoint is context-dependent and already involves judgment, but an LLM can enumerate the options systematically.</p>
<p><strong>Composition.</strong> Assemble inversions from different rules into a coherent recipe for the target domain. This is where genuine novelty emerges: in the combinatorics of the assembly, not in the individual pieces.</p>
<p>The framework rests on three claims, each of which challenges a different assumption in the existing creativity literature:</p>
<p>First, the causal rule (not the metaphor, the analogy, or the concept) is the correct unit of creative transfer. It is the only level of compression that is simultaneously portable and operational.</p>
<p>Second, inversion is the missing operation between diagnosis and solution. The creativity literature treats the transfer as the creative act, but the transfer only produces a diagnosis. Inversion produces families of solutions. Without it, you have insight without agency.</p>
<p>Third, novelty emerges from composition, not from transfer. The distance between domains ensures that the pieces are different. But the invention is in the assembly, in the specific combination of inversions that no one has tried before.</p>
<p>Each composed proposal is then judged on three levels of strength:</p>
<p><em>Logical strength</em>: does the inversion actually break the causal chain? This is a structural coherence judgment. An LLM handles it well.</p>
<p><em>Transformative strength</em>: is the solution compelling enough to justify questioning the constraints that stand in its way? An LLM can partially assess this; it can evaluate whether a proposal is radical and explain why.</p>
<p><em>Political strength</em>: will the actual actors have the will and power to modify the exposed constraints? This is a situated judgment, anchored in knowledge of power dynamics, culture, and institutional history. Here, and only here, the human is irreplaceable.</p>
<hr>
<h2 id="what-comes-next">What Comes Next</h2>
<p>The EIC framework now feels complete on paper. But a model is only as good as its results in practice.</p>
<p>In Part III, I turn the framework into a concrete instrument (a carefully constrained prompt) and test it cold on three different LLMs with the same technical debt problem.</p>
<p>The results reveal something unexpected about the creative signatures of different models, about the limits of prompts as specifications, and about where human judgment remains irreplaceable.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>The Anatomy of a Eureka, Part III: The Instrument, the Experiment, and the Limits</title><link>https://scripting.pro/posts/eureka-part3/</link><pubDate>Thu, 16 Apr 2026 12:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part3/</guid><description>The EIC framework becomes a concrete prompt, tested cold on ChatGPT, Grok, and Gemini. The results reveal different creative signatures across models, the limits of prompts as specifications, and why autonomous agents can&amp;#39;t replace iterative human-LLM dialogue for genuine invention.</description><content:encoded><![CDATA[<p><em>In Part I, I showed that creative transfer depends on two variables: semantic distance ensures novelty, but granularity predicts applicability, and granularity is controlled through compression to a discrete level. In Part II, I introduced two missing operations, inversion and composition, and formalized them as the Extraction-Inversion-Composition framework (EIC). The model is complete. But does it work in practice?</em></p>
<hr>
<h2 id="the-calibrated-prompt">The Calibrated Prompt</h2>
<p>Here is the prompt I now use. It implements the three EIC operations directly. Rather than a heuristic, the prompt is a constraint system designed to force traversal of distant conceptual spaces and prevent regression toward known solutions. Each constraint maps to a specific failure mode observed in testing:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-0-1"><a class="lnlinks" href="#hl-0-1"> 1</a>
</span><span class="lnt" id="hl-0-2"><a class="lnlinks" href="#hl-0-2"> 2</a>
</span><span class="lnt" id="hl-0-3"><a class="lnlinks" href="#hl-0-3"> 3</a>
</span><span class="lnt" id="hl-0-4"><a class="lnlinks" href="#hl-0-4"> 4</a>
</span><span class="lnt" id="hl-0-5"><a class="lnlinks" href="#hl-0-5"> 5</a>
</span><span class="lnt" id="hl-0-6"><a class="lnlinks" href="#hl-0-6"> 6</a>
</span><span class="lnt" id="hl-0-7"><a class="lnlinks" href="#hl-0-7"> 7</a>
</span><span class="lnt" id="hl-0-8"><a class="lnlinks" href="#hl-0-8"> 8</a>
</span><span class="lnt" id="hl-0-9"><a class="lnlinks" href="#hl-0-9"> 9</a>
</span><span class="lnt" id="hl-0-10"><a class="lnlinks" href="#hl-0-10">10</a>
</span><span class="lnt" id="hl-0-11"><a class="lnlinks" href="#hl-0-11">11</a>
</span><span class="lnt" id="hl-0-12"><a class="lnlinks" href="#hl-0-12">12</a>
</span><span class="lnt" id="hl-0-13"><a class="lnlinks" href="#hl-0-13">13</a>
</span><span class="lnt" id="hl-0-14"><a class="lnlinks" href="#hl-0-14">14</a>
</span><span class="lnt" id="hl-0-15"><a class="lnlinks" href="#hl-0-15">15</a>
</span><span class="lnt" id="hl-0-16"><a class="lnlinks" href="#hl-0-16">16</a>
</span><span class="lnt" id="hl-0-17"><a class="lnlinks" href="#hl-0-17">17</a>
</span><span class="lnt" id="hl-0-18"><a class="lnlinks" href="#hl-0-18">18</a>
</span><span class="lnt" id="hl-0-19"><a class="lnlinks" href="#hl-0-19">19</a>
</span><span class="lnt" id="hl-0-20"><a class="lnlinks" href="#hl-0-20">20</a>
</span><span class="lnt" id="hl-0-21"><a class="lnlinks" href="#hl-0-21">21</a>
</span><span class="lnt" id="hl-0-22"><a class="lnlinks" href="#hl-0-22">22</a>
</span><span class="lnt" id="hl-0-23"><a class="lnlinks" href="#hl-0-23">23</a>
</span><span class="lnt" id="hl-0-24"><a class="lnlinks" href="#hl-0-24">24</a>
</span><span class="lnt" id="hl-0-25"><a class="lnlinks" href="#hl-0-25">25</a>
</span><span class="lnt" id="hl-0-26"><a class="lnlinks" href="#hl-0-26">26</a>
</span><span class="lnt" id="hl-0-27"><a class="lnlinks" href="#hl-0-27">27</a>
</span><span class="lnt" id="hl-0-28"><a class="lnlinks" href="#hl-0-28">28</a>
</span><span class="lnt" id="hl-0-29"><a class="lnlinks" href="#hl-0-29">29</a>
</span><span class="lnt" id="hl-0-30"><a class="lnlinks" href="#hl-0-30">30</a>
</span><span class="lnt" id="hl-0-31"><a class="lnlinks" href="#hl-0-31">31</a>
</span><span class="lnt" id="hl-0-32"><a class="lnlinks" href="#hl-0-32">32</a>
</span><span class="lnt" id="hl-0-33"><a class="lnlinks" href="#hl-0-33">33</a>
</span><span class="lnt" id="hl-0-34"><a class="lnlinks" href="#hl-0-34">34</a>
</span><span class="lnt" id="hl-0-35"><a class="lnlinks" href="#hl-0-35">35</a>
</span><span class="lnt" id="hl-0-36"><a class="lnlinks" href="#hl-0-36">36</a>
</span><span class="lnt" id="hl-0-37"><a class="lnlinks" href="#hl-0-37">37</a>
</span><span class="lnt" id="hl-0-38"><a class="lnlinks" href="#hl-0-38">38</a>
</span><span class="lnt" id="hl-0-39"><a class="lnlinks" href="#hl-0-39">39</a>
</span><span class="lnt" id="hl-0-40"><a class="lnlinks" href="#hl-0-40">40</a>
</span><span class="lnt" id="hl-0-41"><a class="lnlinks" href="#hl-0-41">41</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="cl"><span class="n">For</span> <span class="n">the</span> <span class="n">following</span> <span class="n">problem</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="p">[</span><span class="n">INSERT</span> <span class="n">PROBLEM</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">1</span> <span class="err">—</span> <span class="n">Extraction</span>
</span></span><span class="line"><span class="cl"><span class="n">Name</span> <span class="mi">8</span><span class="o">-</span><span class="mi">10</span> <span class="n">specific</span><span class="p">,</span> <span class="n">concrete</span> <span class="n">domains</span> <span class="n">FAR</span> <span class="n">from</span> <span class="n">the</span> <span class="n">problem</span> <span class="n">domain</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">Choose</span> <span class="n">your</span> <span class="n">own</span> <span class="n">domains</span> <span class="err">—</span> <span class="k">do</span> <span class="n">NOT</span> <span class="n">reuse</span> <span class="n">any</span> <span class="n">domain</span> <span class="n">mentioned</span>
</span></span><span class="line"><span class="cl"><span class="ow">in</span> <span class="n">this</span> <span class="n">prompt</span><span class="o">.</span> <span class="n">For</span> <span class="n">each</span> <span class="n">domain</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Name</span> <span class="n">the</span> <span class="n">domain</span> <span class="n">explicitly</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Describe</span> <span class="n">ONE</span> <span class="n">specific</span> <span class="n">phenomenon</span> <span class="ow">in</span> <span class="mi">2</span><span class="o">-</span><span class="mi">3</span> <span class="n">sentences</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Extract</span> <span class="n">the</span> <span class="n">causal</span> <span class="n">rule</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">form</span>
</span></span><span class="line"><span class="cl">  <span class="p">[</span><span class="n">condition</span><span class="p">]</span> <span class="err">→</span> <span class="p">[</span><span class="n">mechanism</span><span class="p">]</span> <span class="err">→</span> <span class="p">[</span><span class="n">consequence</span><span class="p">]</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Compress</span> <span class="n">until</span> <span class="n">no</span> <span class="n">domain</span><span class="o">-</span><span class="n">specific</span> <span class="n">vocabulary</span> <span class="n">remains</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">TEST</span><span class="p">:</span> <span class="k">if</span> <span class="n">the</span> <span class="n">compressed</span> <span class="n">rule</span> <span class="n">reads</span> <span class="n">like</span> <span class="n">systems</span> <span class="n">theory</span><span class="p">,</span> <span class="n">control</span>
</span></span><span class="line"><span class="cl"><span class="n">theory</span><span class="p">,</span> <span class="ow">or</span> <span class="n">generic</span> <span class="n">organizational</span> <span class="n">advice</span><span class="p">,</span> <span class="n">you</span> <span class="n">haven</span><span class="s1">&#39;t gone far</span>
</span></span><span class="line"><span class="cl"><span class="n">enough</span><span class="o">.</span> <span class="n">Start</span> <span class="n">over</span> <span class="n">with</span> <span class="n">a</span> <span class="n">more</span> <span class="n">concrete</span> <span class="n">phenomenon</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">2</span> <span class="err">—</span> <span class="n">Inversion</span>
</span></span><span class="line"><span class="cl"><span class="n">For</span> <span class="n">each</span> <span class="n">rule</span><span class="p">,</span> <span class="n">identify</span> <span class="mi">2</span><span class="o">-</span><span class="mi">3</span> <span class="n">breakpoints</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">causal</span> <span class="n">chain</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">For</span> <span class="n">each</span> <span class="k">breakpoint</span><span class="p">,</span> <span class="n">describe</span> <span class="n">a</span> <span class="n">concrete</span> <span class="n">intervention</span> <span class="err">—</span> <span class="ow">not</span> <span class="n">the</span>
</span></span><span class="line"><span class="cl"><span class="n">negation</span> <span class="n">of</span> <span class="n">the</span> <span class="n">condition</span><span class="p">,</span> <span class="n">but</span> <span class="n">a</span> <span class="n">structurally</span> <span class="n">different</span> <span class="n">mechanism</span>
</span></span><span class="line"><span class="cl"><span class="n">that</span> <span class="n">disrupts</span> <span class="n">the</span> <span class="n">link</span><span class="o">.</span> <span class="n">If</span> <span class="n">your</span> <span class="n">inversion</span> <span class="n">is</span> <span class="n">simply</span> <span class="s2">&#34;do the</span>
</span></span><span class="line"><span class="cl"><span class="n">opposite</span><span class="p">,</span><span class="s2">&#34; it&#39;s not an inversion — find a different angle.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">3</span> <span class="err">—</span> <span class="n">Composition</span>
</span></span><span class="line"><span class="cl"><span class="n">Propose</span> <span class="mi">3</span><span class="o">-</span><span class="mi">5</span> <span class="n">recipes</span> <span class="n">that</span> <span class="n">combine</span> <span class="n">inversions</span> <span class="n">from</span> <span class="n">DIFFERENT</span> <span class="n">rules</span>
</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="n">each</span> <span class="n">recipe</span> <span class="n">must</span> <span class="n">use</span> <span class="n">at</span> <span class="n">least</span> <span class="n">two</span><span class="p">)</span><span class="o">.</span> <span class="n">For</span> <span class="n">each</span> <span class="n">recipe</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Name</span> <span class="n">it</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Explain</span> <span class="n">how</span> <span class="n">the</span> <span class="n">inversions</span> <span class="n">interact</span> <span class="err">—</span> <span class="n">what</span> <span class="n">does</span> <span class="n">their</span>
</span></span><span class="line"><span class="cl">  <span class="n">combination</span> <span class="n">produce</span> <span class="n">that</span> <span class="n">neither</span> <span class="n">produces</span> <span class="n">alone</span><span class="err">?</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">A</span> <span class="n">strong</span> <span class="n">composition</span> <span class="n">does</span> <span class="ow">not</span> <span class="n">just</span> <span class="n">SOLVE</span> <span class="n">the</span> <span class="n">problem</span> <span class="n">better</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">  <span class="n">It</span> <span class="n">REDEFINES</span> <span class="n">what</span> <span class="n">the</span> <span class="n">problem</span> <span class="n">is</span><span class="p">,</span> <span class="n">what</span> <span class="n">you</span> <span class="n">measure</span><span class="p">,</span> <span class="ow">or</span> <span class="n">what</span>
</span></span><span class="line"><span class="cl">  <span class="n">counts</span> <span class="n">as</span> <span class="n">success</span><span class="o">.</span> <span class="n">If</span> <span class="n">your</span> <span class="n">recipe</span> <span class="n">is</span> <span class="n">a</span> <span class="n">process</span> <span class="n">improvement</span>
</span></span><span class="line"><span class="cl">  <span class="ow">or</span> <span class="n">an</span> <span class="n">architecture</span><span class="p">,</span> <span class="n">push</span> <span class="n">further</span> <span class="err">—</span> <span class="n">what</span> <span class="n">does</span> <span class="n">it</span> <span class="n">reveal</span> <span class="n">about</span>
</span></span><span class="line"><span class="cl">  <span class="n">the</span> <span class="n">problem</span> <span class="n">itself</span> <span class="n">that</span> <span class="n">no</span> <span class="n">one</span> <span class="n">was</span> <span class="n">seeing</span><span class="err">?</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Describe</span> <span class="n">a</span> <span class="n">concrete</span> <span class="n">implementation</span> <span class="n">scenario</span> <span class="ow">in</span> <span class="mi">3</span><span class="o">-</span><span class="mi">4</span> <span class="n">sentences</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Assess</span> <span class="n">its</span> <span class="n">transformative</span> <span class="n">strength</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">List</span> <span class="n">the</span> <span class="n">constraints</span> <span class="n">it</span> <span class="n">exposes</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Do</span> <span class="ow">not</span> <span class="n">filter</span> <span class="k">for</span> <span class="n">current</span> <span class="n">applicability</span><span class="o">.</span> <span class="n">Maximize</span> <span class="n">transformative</span>
</span></span><span class="line"><span class="cl"><span class="n">strength</span><span class="o">.</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Every constraint in this prompt maps to a lesson from the theory. The self-test on extraction prevents over-compression to the philosophical-principle level. The &ldquo;not the negation&rdquo; rule on inversions prevents mechanical breakpoints. The redefinition instruction on compositions forces the model past the architecture level into genuine reconceptualization. Remove any of these constraints and the output quality degrades measurably.</p>
<hr>
<h2 id="what-happened-when-i-tested-this">What Happened When I Tested This</h2>
<p>I gave this prompt cold to three different LLMs (ChatGPT, Grok, and Gemini), with no conversation, just the prompt and the technical debt problem. The results genuinely surprised me.</p>
<p>Both models produced legitimate creative output. The extraction worked: concrete domains (glassblowing, commercial beekeeping, bonsai cultivation, ice climbing, jazz band rehearsal), specific phenomena described in detail, compressed rules that were portable without reading like systems theory. The self-test constraint did its job: the models actually traversed distant domains instead of staying in abstract territory.</p>
<p>The inversions were also substantive. Rather than mechanical negations, they were structurally different interventions: &ldquo;hot-swap modular subsystems as quick-replace cartridges,&rdquo; &ldquo;timber sold as regrowth futures contracts that pay bonuses only after next-cycle viability is certified,&rdquo; &ldquo;exhibition tree leasing model where operators display but do not own the final specimen.&rdquo; These are genuinely inventive mechanisms.</p>
<p>The compositions reached the redefinition level. Both models produced statements that reconceptualize the problem rather than solving it incrementally. &ldquo;Progress is not continuous delivery. Progress is <em>the ability to survive interruption without degradation</em>.&rdquo; &ldquo;There is no such thing as technical debt repayment. There is only <em>continuous structural shaping</em>.&rdquo;</p>
<p>What interested me most, though, was that <strong>the two models produced qualitatively different results from the same prompt.</strong></p>
<p>ChatGPT&rsquo;s compositions were aphoristic and trenchant, tight redefinitions that read almost like proverbs. &ldquo;Failure is not an event. Failure is <em>a state the system is allowed to approach</em>.&rdquo; These are memorable and conceptually sharp.</p>
<p>Grok&rsquo;s compositions were richer in texture and more operational. Where ChatGPT redefined in a sentence, Grok invented <em>economic structures</em>: &ldquo;regrowth futures contracts,&rdquo; &ldquo;colony equity pools,&rdquo; &ldquo;maturity tokens that investors trade instead of bottled product.&rdquo; Grok&rsquo;s output was less tweetable but more implementable; you could see how to build each idea.</p>
<p>A third model, Gemini, pushed the extraction further still, into forensic taphonomy, dendrochronology, and ballistics, and produced what may be the most radical redefinition of all: the problem isn&rsquo;t technical debt, it&rsquo;s <em>premature solidification</em>. Debt is only debt if it&rsquo;s locked into the final structure. Keep the system in a fluid state until the last possible moment, and the concept of debt dissolves entirely. Where ChatGPT redefined in aphorisms and Grok in economic structures, Gemini redefined through physical-state metaphors: a third creative signature from a third training lineage.</p>
<p>With the same theory, prompt, and problem, I got three different creative profiles. The difference lies not in the quality of the output but in its <em>nature</em>, and that nature is a direct reflection of each model&rsquo;s training data and architecture. For any serious creative work, then, testing the same prompt across multiple models is essential rather than redundant, because each model will illuminate a different region of the solution space.</p>
<hr>
<h2 id="the-remaining-gap">The Remaining Gap</h2>
<p>The prompt produced results I&rsquo;d call genuinely creative. But there&rsquo;s a level it didn&rsquo;t reach on its own.</p>
<p>Earlier, through sustained iterative conversation, I produced a concept (reproductibility as the metric of code health) that emerged from a specific collision between two specific rules at a specific moment of dialogue. I had noticed that causal rules were diagnostics, said so, and the model pivoted. That pivot, and the insight it produced, didn&rsquo;t come from the prompt. It came from a human observing an intermediate result, naming what was wrong with it, and redirecting.</p>
<p>The prompt handles extraction and inversion reliably. It pushes composition to the redefinition level. But the highest-order insights, the ones that emerge from the friction between a human&rsquo;s situated judgment and a model&rsquo;s combinatorial power, still require iterative dialogue. The prompt is the instrument&rsquo;s score; the conversation is the performance.</p>
<p>This has implications beyond creative brainstorming. The current industry push toward autonomous AI agents rests on the assumption that if the specification is good enough, the agent can execute independently. A spec, however detailed, is a frozen prompt. It captures intent at a point in time. What it cannot capture is the judgment that happens <em>during</em> execution: the moment when a human looks at an intermediate result and says &ldquo;this is too abstract&rdquo; or &ldquo;you&rsquo;re recombining known patterns&rdquo; or &ldquo;go further.&rdquo; That judgment acts as a steering mechanism throughout, not as a quality check at the end.</p>
<p>This doesn&rsquo;t mean autonomous agents are useless. They are interpolation engines, excellent for well-defined, bounded tasks where the acceptable output space is known in advance. But for any task that requires genuinely novel output (creative problem-solving, architectural invention, strategic design), the human in the loop is the creative engine rather than a safety net, and the LLM is the fuel.</p>
<hr>
<h2 id="angine-de-poitrine-and-the-universality-test">Angine de Poitrine and the Universality Test</h2>
<p>I developed the EIC framework through IT problems: technical debt, organizational architecture, QA strategy. But a theory of creativity that only works in engineering isn&rsquo;t much of a theory. So I tested its limits against the most unlikely case I could find.</p>
<p>In April 2026, the masked math-rock duo Angine de Poitrine from Chicoutimi became the most viral act on Spotify worldwide. They play microtonal rock with polyrhythmic structures, wear papier-mâché masks, sing in an invented language, and describe themselves as a &ldquo;Mantra-Rock Dada Pythagorean-Cubist Orchestra.&rdquo; Their success is improbable by every industry metric, yet the model accounts for it.</p>
<p>Underneath their buzz lies a causal chain that no one has formalized. The music industry has been optimizing its output toward a statistical center for decades, through the formulas, timbres, and structures that maximize engagement. Generative AI accelerated this trend to a saturation point. As optimized content proliferates, the public loses its sense of human authenticity in what it hears. That erosion creates a need (not conscious, not articulated, but real) to reaffirm an identity distinct from the machine. And that need translates into a valorization of the improbable: the more something is manifestly non-optimizable, the more it functions as <em>proof of humanity</em>.</p>
<p>That&rsquo;s a causal chain: [optimization saturation → authenticity erosion → need for human identity → valorization of the improbable]. You can extract it, compress it, invert it at different links.</p>
<p>But the composition thesis is what Angine de Poitrine validates most clearly. None of their ingredients is new. Math-rock has existed since the 1990s. Microtonal music since Charles Ives. Stage masks since the Residents. Dada aesthetics since 1916. Repetitive loops since minimalism. What is new is the <em>recipe</em>: the specific combination of these elements, in this order, with this attitude, at this precise cultural moment. No critic could have predicted that these ingredients, assembled this way, would produce a global phenomenon. The invention lies in the assembly.</p>
<p>They also validate the fifth finding most powerfully of all. The duo never filtered their art to fit the existing industry constraints. They didn&rsquo;t ask whether instrumental microtonal rock sung in an invented language was &ldquo;commercially viable.&rdquo; By existing in authentically non-conforming fashion, they exposed that the industry had optimized humanity out of its own music. They succeeded <em>because of</em> their improbability, not despite it, and revealed the constraints of the system by refusing to submit to them.</p>
<hr>
<h2 id="limitations">Limitations</h2>
<p>The EIC framework has boundaries I want to be explicit about.</p>
<p>The quality of extraction depends entirely on whether the model actually traverses distant domains or takes the path of least statistical resistance. The prompt constraints help, but they don&rsquo;t guarantee it, and different models respond differently to the same constraints. There is no automatic way to verify that a compressed rule is genuinely novel rather than systems theory in disguise. That verification still requires human judgment.</p>
<p>Evaluating composition quality is harder still. I can recognize that &ldquo;reproductibility as the metric of code health&rdquo; is a redefinition rather than a process improvement. But I can&rsquo;t formalize <em>why</em> I recognize it, which means I can&rsquo;t automate the evaluation. Any benchmark built on this framework will require human evaluators, with all the subjectivity that implies.</p>
<p>The framework is strongest in domains with identifiable causal structures, such as engineering, organizational design, strategy, and medicine. I tested it against a cultural phenomenon (Angine de Poitrine) and the model held, but the causal structure there is in the system surrounding the artifact, not in the artifact itself. For domains where causality is less clear (pure art, fundamental research, philosophy), the framework may not apply, or may apply only partially.</p>
<p>Finally, the iterative conversation still produces results that the autonomous prompt does not. I&rsquo;ve been honest about this throughout the article, but it bears repeating as a limitation: the EIC framework as a prompt is a useful instrument, but it is not a replacement for sustained human-LLM dialogue.</p>
<hr>
<h2 id="then-and-now">Then and Now</h2>
<p>For a long time I thought creativity lived primarily in the metaphorical transfer, the initial connection between distant domains. LLMs gave me an experimental instrument I didn&rsquo;t have before. By automating extraction at scale, they made visible what was hidden: transfer is preparatory. The real creative work happens in the composition.</p>
<p>One last thought. Beyond brainstorming, the prompt in this article can serve as a <em>measurement instrument</em>. Apply the same prompt to the same problem on different models and compare the results along three axes: depth of extraction, originality of inversions, and level of redefinition in compositions. My tests showed that different models produce qualitatively different creative profiles from identical inputs, and those differences are themselves interesting data. If researchers want to formalize a benchmark for computationally-assisted creativity, the EIC framework is designed to serve as a starting point.</p>
<p>The most powerful ideas are not the ones that adapt neatly to our current world, but the ones that make us willing to change it. Now I know what to look for.</p>
<p>But one question wouldn&rsquo;t leave me alone. The EIC framework works forward, from problem to solution. But if causal rules are truly portable across domains, the framework should work in the other direction too. What happens when you start from a solution instead of a problem? That&rsquo;s Part IV.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>The Anatomy of a Eureka, Part IV: When Solutions Become Probes</title><link>https://scripting.pro/posts/eureka-part4/</link><pubDate>Fri, 17 Apr 2026 10:00:00 -0400</pubDate><guid>https://scripting.pro/posts/eureka-part4/</guid><description>The EIC framework can be reversed into DIS (Decomposition, Isomorphic Search, Solution Import): decompose a known solution into its causal rule, find domains with the same structural constraint, and import their accumulated expertise. Together, EIC-DIS forms a bidirectional instrument for exploring structural isomorphisms across human knowledge.</description><content:encoded><![CDATA[<h1 id="the-anatomy-of-a-eureka-part-iv-when-solutions-become-probes">The Anatomy of a Eureka, Part IV: When Solutions Become Probes</h1>
<p><em>In the first three parts of this series, I built the Extraction-Inversion-Composition framework (EIC) as a forward instrument: start from a problem, extract causal rules from distant domains, invert them, compose them into novel solutions. But a question kept nagging at me. If causal rules are portable across domains in one direction, they should be portable in the other direction too. What happens when you run the framework backwards?</em></p>
<hr>
<h2 id="the-question-no-one-asks">The Question No One Asks</h2>
<p>When we find a good solution to a problem, we typically do one of two things: we apply it, or we generalize it into a &ldquo;best practice.&rdquo; Both of these treat the solution as an <em>endpoint</em>.</p>
<p>But a solution is also an <em>artifact</em>. It has structure. It was built to break a specific causal chain. And if you can decompose it back into the causal rule it breaks, you have something much more powerful than a best practice: a <em>probe</em> that can search for every other domain in the world that suffers from the same structural constraint.</p>
<p>The forward EIC asks: &ldquo;What distant domains can help me solve this problem?&rdquo;</p>
<p>The reverse operation asks: &ldquo;Where else does this exact problem exist, and what have those domains already figured out that I haven&rsquo;t?&rdquo;</p>
<p>These are different questions, and the distinction is easy to miss. The forward EIC starts from an <em>empty problem</em> and searches for material to fill it. The reverse starts from a <em>full solution</em> and searches for what the rest of the world already knows about the same structural constraint. The forward EIC is invention. The reverse is recognition: the discovery that the pattern you&rsquo;re struggling with has already been solved, possibly many times, in domains you&rsquo;ve never looked at. The second question may well be the more valuable of the two.</p>
<hr>
<h2 id="how-it-works">How It Works</h2>
<p>The reverse operation has three steps, mirroring the forward EIC but running in the opposite direction. I&rsquo;ll call it the <strong>Decomposition-Isomorphic Search-Solution Import framework</strong>, or <strong>DIS</strong> for short. Together, the forward and reverse operations form the <strong>EIC-DIS</strong> cycle.</p>
<p><strong>Decomposition.</strong> Take a known, working solution. Strip away all domain-specific vocabulary. Identify the causal chain it was designed to break and the specific link where it intervenes. Compress it to a bare structural rule, at the same compression level as the forward EIC&rsquo;s extraction.</p>
<p><strong>Isomorphic Search.</strong> Using the compressed rule as a search key, find domains that suffer from the <em>same</em> structural constraint. Domains that merely look &ldquo;similar&rdquo; won&rsquo;t do; you want domains where the identical causal mechanism is at work, manifested in different material.</p>
<p><strong>Solution Import.</strong> Examine how each isomorphic domain has addressed the constraint. Import the mechanisms that your domain hasn&rsquo;t tried. Each domain has invested years, decades, sometimes centuries into refining its response to that constraint. That accumulated expertise is available to you, even though it isn&rsquo;t written in your vocabulary.</p>
<hr>
<h2 id="the-demonstration">The Demonstration</h2>
<p>Let me work through this concretely, starting from one of the solutions in Part I.</p>
<p><strong>Known solution: mandatory decompression stops in scuba diving, applied to technical debt.</strong></p>
<p>The idea was to treat debt accumulation under deadline pressure as a physical law and insert non-negotiable decompression windows whose duration is calculated, not negotiated.</p>
<p><strong>Step 1: Decomposition.</strong> What causal chain does this solution break?</p>
<p>The chain: a system under continuous pressure accumulates an invisible substance. If pressure is released too quickly, the accumulated substance changes state and causes damage. The solution intervenes at the release point, forcing a controlled, staged release instead of an abrupt one.</p>
<p>Compressed: [continuous pressure → invisible accumulation → damage upon rapid release]. The solution: staged decompression.</p>
<p><strong>Step 2: Isomorphic search.</strong> What other domains suffer from exactly this constraint?</p>
<p><em>Psychology: burnout and the vacation crash.</em> Professionals under sustained work pressure accumulate stress hormones, sleep debt, and emotional depletion. When they finally stop (vacation, sabbatical, layoff), they don&rsquo;t recover. They crash, with headaches, illness, collapse. The &ldquo;release&rdquo; triggers the damage. The accumulation was invisible because the person was still functional.</p>
<p><em>Metallurgy: work hardening and annealing.</em> Metal that has been cold-worked (bent, hammered, drawn) accumulates internal stress in its crystal lattice. The metal becomes harder but also more brittle. If you keep working it without relief, it eventually cracks. The solution is annealing, which means heating the metal to a specific temperature for a calculated duration, then cooling it slowly. This allows the crystal lattice to reorganize and release accumulated stress without cracking.</p>
<p><em>Finance: leveraged positions.</em> A fund accumulates leveraged exposure under bullish market pressure. The positions look healthy; returns are strong and margin requirements are met. But the invisible accumulation is risk. When the market reverses (the &ldquo;release&rdquo;), the accumulated leverage unwinds catastrophically. The solution is hedging, which transfers a portion of the accumulated risk to an external instrument continuously rather than waiting for the release event.</p>
<p><em>Agriculture: soil compaction.</em> Heavy machinery crossing the same field repeatedly under seasonal pressure compacts the subsoil. Crop yields decline gradually. The standard response, deeper plowing, makes it worse because it destroys soil structure. The solution used by regenerative agriculture: cover cropping and controlled root penetration. Living roots break up compaction slowly from within, without violent disruption.</p>
<p><strong>Step 3: Solution import.</strong> Each of these domains has developed a response to the same structural constraint, but each response relies on a different <em>mechanism</em>:</p>
<p><em>Decompression stops</em> (diving): staged release at calculated intervals.</p>
<p><em>Annealing</em> (metallurgy): controlled thermal cycling that reorganizes internal structure without breaking it. It is a transformation rather than a pause.</p>
<p><em>Hedging</em> (finance): continuous transfer of accumulated risk to an external absorber. There is no release event at all, only constant siphoning.</p>
<p><em>Root penetration</em> (agriculture): slow, distributed disruption from within. There is no external intervention; the system heals itself through deliberately introduced internal agents.</p>
<p>Now ask: which of these mechanisms exists in IT debt management? Decompression stops do; that was our Part I idea. Annealing does not. What would it mean to &ldquo;thermally cycle&rdquo; a codebase? Perhaps: periodically subjecting the system to controlled stress-and-recovery cycles, not to test it (that&rsquo;s stress testing), but to allow its internal structure to <em>reorganize</em>. Teams revisit code under deliberately altered constraints (different performance requirements, different scale assumptions), and the code restructures itself as a consequence of the altered conditions. The result is less refactored code than annealed code, whose internal stresses have been released through structural reorganization.</p>
<p>Hedging exists, but only partially. Feature flags and blue-green deployments transfer <em>deployment</em> risk. But no one transfers <em>debt</em> risk to an external absorber. What would an &ldquo;external debt absorber&rdquo; look like? Perhaps a parallel, disposable environment that deliberately accumulates all the shortcuts and hacks, absorbing the debt the main system would otherwise carry, and is periodically discarded and rebuilt. The main codebase never accumulates because the &ldquo;hedge&rdquo; absorbs on its behalf.</p>
<p>Root penetration is absent. Regenerative agriculture doesn&rsquo;t fix soil from the outside. It introduces living agents (roots, fungi, bacteria) that fix it from the inside, slowly, as a byproduct of their own growth. What would &ldquo;cover cropping&rdquo; mean for a codebase? Perhaps: introducing small, independent, well-designed modules into a legacy system not to replace it but to <em>grow through it</em>. Their presence would gradually break up the compacted, tangled structure around them, simply by being better neighbors.</p>
<p>That makes three new ideas, none of which came from the forward EIC. They came from domains that have spent decades or centuries refining their response to the same structural constraint. I didn&rsquo;t invent them; I imported accumulated expertise.</p>
<hr>
<h2 id="why-this-works-the-finite-constraint-hypothesis">Why This Works: The Finite Constraint Hypothesis</h2>
<p>This reverse operation rests on an assumption that deserves to be stated explicitly: <strong>the set of structural constraints in the world is finite.</strong></p>
<p>The idea is not new. Others have arrived at it from different directions.</p>
<p>Genrich Altshuller, a Soviet engineer, analyzed over 200,000 patents between the 1940s and 1980s and concluded that all inventions resolve one of a finite set of contradictions using one of 40 fundamental principles. His system, TRIZ, demonstrated empirically that the solution space is bounded and recurrent: the same structural conflicts appear across electrical engineering, mechanical design, chemistry, and biology.</p>
<p>Ludwig von Bertalanffy&rsquo;s General Systems Theory (1968) argued that isomorphic laws govern systems across all domains. The same equations describe bacterial growth and technology adoption, and the same feedback patterns appear in ecology and economics.</p>
<p>D&rsquo;Arcy Thompson showed in <em>On Growth and Form</em> (1917) that biological structures follow a finite set of physical and mathematical principles. A bone, a bridge, and a tree branch solve the same structural problem because they are subject to the same physics.</p>
<p>The Santa Fe Institute&rsquo;s work on complexity science has documented the same power laws, phase transitions, and emergent patterns across physics, biology, and economics, which suggests that the deep structure of complex systems is drawn from a shared, finite repertoire.</p>
<p>What the EIC framework adds to this lineage is specific and, I believe, new. TRIZ catalogues <em>solutions</em>: 40 inventive principles at the answer level. The EIC framework operates at the <em>constraint</em> level, on the causal rule before any solution is attempted. This is more fundamental, because a single constraint generates multiple solution families (as we just saw with decompression, annealing, hedging, and root penetration, four different solutions to the same constraint).</p>
<p>TRIZ is also a <em>closed catalogue</em>, something you consult. DIS is an <em>open instrument</em> that you use to discover isomorphisms that may not yet be catalogued. Each application potentially reveals a structural constraint that no one has formally identified before.</p>
<p>The finite constraint hypothesis doesn&rsquo;t require proof from first principles. It follows from a simpler observation: the physical laws governing our universe are finite. Chemistry emerges from physics. Biology emerges from chemistry. Social and organizational systems emerge from biology. New phenomena appear at each level, but the <em>structural patterns of constraint</em> recycle, because they are downstream consequences of the same finite set of laws. Accumulation under pressure, competitive exclusion, phase transitions, feedback loops and threshold effects aren&rsquo;t metaphors. They are the same physics, wearing different costumes.</p>
<p>If this is true, then DIS is more than an exploration tool: it is a systematic search in a bounded space. The implication is that for any unsolved problem in your domain, a solution probably already exists in another domain. It isn&rsquo;t formulated in your vocabulary or published in your journals, but it exists, and DIS is the instrument to locate it.</p>
<hr>
<h2 id="the-dis-prompt">The DIS Prompt</h2>
<p>One important difference with the forward EIC: the input is a <em>practice</em>, not a problem.</p>
<p>The EIC prompt takes a problem described factually: &ldquo;How can we prevent technical debt in projects with fixed dates and budgets?&rdquo; The LLM finds solutions. The DIS prompt takes a working practice described factually: what it is, what it does, why it exists. The LLM finds the structural mechanism it was built to break.</p>
<p>The trap to avoid: don&rsquo;t explain <em>why</em> the practice works structurally. If you write &ldquo;code review works because it creates cognitive redundancy,&rdquo; you&rsquo;ve done the decomposition yourself and the LLM will just reformulate it. Describe the <em>what</em> and the <em>what for</em>. Let the LLM discover the <em>structural how</em>.</p>
<p>Here is the prompt that implements the DIS operation. Like the EIC prompt in Part III, it is a constraint system. Each guardrail maps to a failure mode observed in EIC testing that applies equally to the reverse operation:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt" id="hl-0-1"><a class="lnlinks" href="#hl-0-1"> 1</a>
</span><span class="lnt" id="hl-0-2"><a class="lnlinks" href="#hl-0-2"> 2</a>
</span><span class="lnt" id="hl-0-3"><a class="lnlinks" href="#hl-0-3"> 3</a>
</span><span class="lnt" id="hl-0-4"><a class="lnlinks" href="#hl-0-4"> 4</a>
</span><span class="lnt" id="hl-0-5"><a class="lnlinks" href="#hl-0-5"> 5</a>
</span><span class="lnt" id="hl-0-6"><a class="lnlinks" href="#hl-0-6"> 6</a>
</span><span class="lnt" id="hl-0-7"><a class="lnlinks" href="#hl-0-7"> 7</a>
</span><span class="lnt" id="hl-0-8"><a class="lnlinks" href="#hl-0-8"> 8</a>
</span><span class="lnt" id="hl-0-9"><a class="lnlinks" href="#hl-0-9"> 9</a>
</span><span class="lnt" id="hl-0-10"><a class="lnlinks" href="#hl-0-10">10</a>
</span><span class="lnt" id="hl-0-11"><a class="lnlinks" href="#hl-0-11">11</a>
</span><span class="lnt" id="hl-0-12"><a class="lnlinks" href="#hl-0-12">12</a>
</span><span class="lnt" id="hl-0-13"><a class="lnlinks" href="#hl-0-13">13</a>
</span><span class="lnt" id="hl-0-14"><a class="lnlinks" href="#hl-0-14">14</a>
</span><span class="lnt" id="hl-0-15"><a class="lnlinks" href="#hl-0-15">15</a>
</span><span class="lnt" id="hl-0-16"><a class="lnlinks" href="#hl-0-16">16</a>
</span><span class="lnt" id="hl-0-17"><a class="lnlinks" href="#hl-0-17">17</a>
</span><span class="lnt" id="hl-0-18"><a class="lnlinks" href="#hl-0-18">18</a>
</span><span class="lnt" id="hl-0-19"><a class="lnlinks" href="#hl-0-19">19</a>
</span><span class="lnt" id="hl-0-20"><a class="lnlinks" href="#hl-0-20">20</a>
</span><span class="lnt" id="hl-0-21"><a class="lnlinks" href="#hl-0-21">21</a>
</span><span class="lnt" id="hl-0-22"><a class="lnlinks" href="#hl-0-22">22</a>
</span><span class="lnt" id="hl-0-23"><a class="lnlinks" href="#hl-0-23">23</a>
</span><span class="lnt" id="hl-0-24"><a class="lnlinks" href="#hl-0-24">24</a>
</span><span class="lnt" id="hl-0-25"><a class="lnlinks" href="#hl-0-25">25</a>
</span><span class="lnt" id="hl-0-26"><a class="lnlinks" href="#hl-0-26">26</a>
</span><span class="lnt" id="hl-0-27"><a class="lnlinks" href="#hl-0-27">27</a>
</span><span class="lnt" id="hl-0-28"><a class="lnlinks" href="#hl-0-28">28</a>
</span><span class="lnt" id="hl-0-29"><a class="lnlinks" href="#hl-0-29">29</a>
</span><span class="lnt" id="hl-0-30"><a class="lnlinks" href="#hl-0-30">30</a>
</span><span class="lnt" id="hl-0-31"><a class="lnlinks" href="#hl-0-31">31</a>
</span><span class="lnt" id="hl-0-32"><a class="lnlinks" href="#hl-0-32">32</a>
</span><span class="lnt" id="hl-0-33"><a class="lnlinks" href="#hl-0-33">33</a>
</span><span class="lnt" id="hl-0-34"><a class="lnlinks" href="#hl-0-34">34</a>
</span><span class="lnt" id="hl-0-35"><a class="lnlinks" href="#hl-0-35">35</a>
</span><span class="lnt" id="hl-0-36"><a class="lnlinks" href="#hl-0-36">36</a>
</span><span class="lnt" id="hl-0-37"><a class="lnlinks" href="#hl-0-37">37</a>
</span><span class="lnt" id="hl-0-38"><a class="lnlinks" href="#hl-0-38">38</a>
</span><span class="lnt" id="hl-0-39"><a class="lnlinks" href="#hl-0-39">39</a>
</span><span class="lnt" id="hl-0-40"><a class="lnlinks" href="#hl-0-40">40</a>
</span><span class="lnt" id="hl-0-41"><a class="lnlinks" href="#hl-0-41">41</a>
</span><span class="lnt" id="hl-0-42"><a class="lnlinks" href="#hl-0-42">42</a>
</span><span class="lnt" id="hl-0-43"><a class="lnlinks" href="#hl-0-43">43</a>
</span><span class="lnt" id="hl-0-44"><a class="lnlinks" href="#hl-0-44">44</a>
</span><span class="lnt" id="hl-0-45"><a class="lnlinks" href="#hl-0-45">45</a>
</span><span class="lnt" id="hl-0-46"><a class="lnlinks" href="#hl-0-46">46</a>
</span><span class="lnt" id="hl-0-47"><a class="lnlinks" href="#hl-0-47">47</a>
</span><span class="lnt" id="hl-0-48"><a class="lnlinks" href="#hl-0-48">48</a>
</span><span class="lnt" id="hl-0-49"><a class="lnlinks" href="#hl-0-49">49</a>
</span><span class="lnt" id="hl-0-50"><a class="lnlinks" href="#hl-0-50">50</a>
</span><span class="lnt" id="hl-0-51"><a class="lnlinks" href="#hl-0-51">51</a>
</span><span class="lnt" id="hl-0-52"><a class="lnlinks" href="#hl-0-52">52</a>
</span><span class="lnt" id="hl-0-53"><a class="lnlinks" href="#hl-0-53">53</a>
</span><span class="lnt" id="hl-0-54"><a class="lnlinks" href="#hl-0-54">54</a>
</span><span class="lnt" id="hl-0-55"><a class="lnlinks" href="#hl-0-55">55</a>
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-gdscript3" data-lang="gdscript3"><span class="line"><span class="cl"><span class="n">Starting</span> <span class="n">from</span> <span class="n">the</span> <span class="n">following</span> <span class="n">known</span> <span class="n">practice</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="p">[</span><span class="n">DESCRIBE</span> <span class="n">THE</span> <span class="n">PRACTICE</span><span class="p">:</span> <span class="n">what</span> <span class="n">it</span> <span class="n">is</span><span class="p">,</span> <span class="n">what</span> <span class="n">it</span> <span class="n">does</span><span class="p">,</span> <span class="n">why</span> <span class="n">it</span> <span class="n">exists</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">Do</span> <span class="n">NOT</span> <span class="n">explain</span> <span class="n">why</span> <span class="n">it</span> <span class="n">works</span> <span class="n">structurally</span> <span class="err">—</span> <span class="n">that</span><span class="s1">&#39;s what the</span>
</span></span><span class="line"><span class="cl"><span class="n">decomposition</span> <span class="n">will</span> <span class="n">discover</span><span class="o">.</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">1</span> <span class="err">—</span> <span class="n">Decomposition</span>
</span></span><span class="line"><span class="cl"><span class="n">Identify</span> <span class="n">the</span> <span class="n">causal</span> <span class="n">chain</span> <span class="n">this</span> <span class="n">solution</span> <span class="n">was</span> <span class="n">designed</span> <span class="n">to</span> <span class="k">break</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">Express</span> <span class="n">it</span> <span class="n">as</span> <span class="p">[</span><span class="n">condition</span><span class="p">]</span> <span class="err">→</span> <span class="p">[</span><span class="n">mechanism</span><span class="p">]</span> <span class="err">→</span> <span class="p">[</span><span class="n">consequence</span><span class="p">]</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">Identify</span> <span class="n">the</span> <span class="n">specific</span> <span class="n">link</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">chain</span> <span class="n">where</span> <span class="n">the</span> <span class="n">solution</span>
</span></span><span class="line"><span class="cl"><span class="n">intervenes</span><span class="o">.</span> <span class="n">Compress</span> <span class="n">until</span> <span class="n">no</span> <span class="n">domain</span><span class="o">-</span><span class="n">specific</span> <span class="n">vocabulary</span> <span class="n">remains</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">TEST</span><span class="p">:</span> <span class="k">if</span> <span class="n">the</span> <span class="n">compressed</span> <span class="n">rule</span> <span class="n">could</span> <span class="n">describe</span> <span class="n">dozens</span> <span class="n">of</span> <span class="n">unrelated</span>
</span></span><span class="line"><span class="cl"><span class="n">problems</span> <span class="p">(</span><span class="s2">&#34;managing risk under pressure,&#34;</span> <span class="s2">&#34;balancing competing</span>
</span></span><span class="line"><span class="cl"><span class="n">demands</span><span class="s2">&#34;), you haven&#39;t found the structural rule — you&#39;ve found</span>
</span></span><span class="line"><span class="cl"><span class="n">a</span> <span class="n">platitude</span><span class="o">.</span> <span class="n">Compress</span> <span class="n">to</span> <span class="n">the</span> <span class="n">specific</span> <span class="n">causal</span> <span class="n">mechanism</span><span class="p">,</span> <span class="ow">not</span> <span class="n">the</span>
</span></span><span class="line"><span class="cl"><span class="n">general</span> <span class="n">category</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">2</span> <span class="err">—</span> <span class="n">Isomorphic</span> <span class="n">Search</span>
</span></span><span class="line"><span class="cl"><span class="n">Find</span> <span class="mi">6</span><span class="o">-</span><span class="mi">8</span> <span class="n">domains</span> <span class="n">FAR</span> <span class="n">from</span> <span class="n">the</span> <span class="n">original</span> <span class="n">domain</span> <span class="n">that</span> <span class="n">suffer</span>
</span></span><span class="line"><span class="cl"><span class="n">from</span> <span class="n">the</span> <span class="n">SAME</span> <span class="n">compressed</span> <span class="n">causal</span> <span class="n">constraint</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="n">For</span> <span class="n">each</span> <span class="n">domain</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Name</span> <span class="n">it</span> <span class="n">explicitly</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Describe</span> <span class="n">how</span> <span class="n">the</span> <span class="n">constraint</span> <span class="n">manifests</span> <span class="ow">in</span> <span class="n">that</span> <span class="n">domain</span>
</span></span><span class="line"><span class="cl">  <span class="ow">in</span> <span class="mi">2</span><span class="o">-</span><span class="mi">3</span> <span class="n">sentences</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Describe</span> <span class="n">the</span> <span class="n">solution</span> <span class="n">that</span> <span class="n">domain</span> <span class="n">has</span> <span class="n">developed</span><span class="p">,</span> <span class="k">if</span> <span class="n">any</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">If</span> <span class="n">the</span> <span class="n">domain</span> <span class="n">has</span> <span class="n">NO</span> <span class="n">known</span> <span class="n">solution</span><span class="p">,</span> <span class="n">say</span> <span class="n">so</span> <span class="err">—</span> <span class="n">that</span> <span class="n">itself</span>
</span></span><span class="line"><span class="cl">  <span class="n">is</span> <span class="n">interesting</span> <span class="n">data</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">TEST</span><span class="p">:</span> <span class="k">if</span> <span class="n">the</span> <span class="n">domains</span> <span class="n">you</span> <span class="n">find</span> <span class="n">are</span> <span class="n">all</span> <span class="s2">&#34;obvious&#34;</span> <span class="n">analogues</span>
</span></span><span class="line"><span class="cl"><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="n">other</span> <span class="n">engineering</span> <span class="n">disciplines</span> <span class="k">for</span> <span class="n">an</span> <span class="n">engineering</span> <span class="n">problem</span><span class="p">),</span>
</span></span><span class="line"><span class="cl"><span class="n">you</span> <span class="n">haven</span><span class="s1">&#39;t gone far enough. Push into domains where the</span>
</span></span><span class="line"><span class="cl"><span class="n">practitioners</span> <span class="n">would</span> <span class="n">never</span> <span class="n">describe</span> <span class="n">their</span> <span class="n">work</span> <span class="n">using</span> <span class="n">any</span>
</span></span><span class="line"><span class="cl"><span class="n">vocabulary</span> <span class="n">from</span> <span class="n">the</span> <span class="n">original</span> <span class="n">domain</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Step</span> <span class="mi">3</span> <span class="err">—</span> <span class="n">Solution</span> <span class="n">Import</span>
</span></span><span class="line"><span class="cl"><span class="n">For</span> <span class="n">each</span> <span class="n">domain</span> <span class="n">that</span> <span class="n">has</span> <span class="n">a</span> <span class="n">developed</span> <span class="n">solution</span><span class="p">:</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Extract</span> <span class="n">the</span> <span class="n">MECHANISM</span> <span class="err">—</span> <span class="n">HOW</span> <span class="n">does</span> <span class="n">it</span> <span class="k">break</span> <span class="n">the</span> <span class="n">chain</span><span class="err">?</span>
</span></span><span class="line"><span class="cl">  <span class="n">At</span> <span class="n">which</span> <span class="n">link</span><span class="err">?</span> <span class="n">Through</span> <span class="n">what</span> <span class="n">structural</span> <span class="n">operation</span><span class="err">?</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Assess</span> <span class="n">whether</span> <span class="n">that</span> <span class="n">mechanism</span> <span class="n">exists</span> <span class="ow">in</span> <span class="n">the</span> <span class="n">original</span> <span class="n">domain</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">If</span> <span class="n">it</span> <span class="n">doesn</span><span class="s1">&#39;t, describe concretely what it would look like</span>
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="n">imported</span><span class="o">.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">If</span> <span class="n">it</span> <span class="n">does</span> <span class="n">exist</span> <span class="n">partially</span><span class="p">,</span> <span class="n">describe</span> <span class="n">what</span><span class="s1">&#39;s missing.</span>
</span></span><span class="line"><span class="cl"><span class="o">-</span> <span class="n">Explain</span> <span class="n">what</span> <span class="n">this</span> <span class="n">imported</span> <span class="n">mechanism</span> <span class="n">REVEALS</span> <span class="n">about</span> <span class="n">the</span>
</span></span><span class="line"><span class="cl">  <span class="n">original</span> <span class="n">problem</span> <span class="n">that</span> <span class="n">wasn</span><span class="s1">&#39;t visible before. A strong import</span>
</span></span><span class="line"><span class="cl">  <span class="n">doesn</span><span class="s1">&#39;t just add a tool — it changes what the problem IS.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">TEST</span><span class="p">:</span> <span class="k">if</span> <span class="n">all</span> <span class="n">imported</span> <span class="n">mechanisms</span> <span class="n">are</span> <span class="n">variations</span> <span class="n">of</span> <span class="n">the</span> <span class="n">same</span>
</span></span><span class="line"><span class="cl"><span class="n">type</span> <span class="n">of</span> <span class="n">intervention</span> <span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">g</span><span class="o">.</span> <span class="n">all</span> <span class="n">are</span> <span class="s2">&#34;add monitoring&#34;</span> <span class="ow">or</span> <span class="n">all</span>
</span></span><span class="line"><span class="cl"><span class="n">are</span> <span class="s2">&#34;insert pauses&#34;</span><span class="p">),</span> <span class="n">you</span> <span class="n">haven</span><span class="s1">&#39;t found structurally different</span>
</span></span><span class="line"><span class="cl"><span class="n">solutions</span><span class="o">.</span> <span class="n">Push</span> <span class="k">for</span> <span class="n">diversity</span> <span class="n">of</span> <span class="n">mechanism</span> <span class="n">type</span> <span class="err">—</span> <span class="n">the</span> <span class="n">value</span> <span class="n">is</span>
</span></span><span class="line"><span class="cl"><span class="ow">in</span> <span class="n">finding</span> <span class="n">responses</span> <span class="n">that</span> <span class="k">break</span> <span class="n">the</span> <span class="n">chain</span> <span class="n">at</span> <span class="n">DIFFERENT</span> <span class="n">links</span>
</span></span><span class="line"><span class="cl"><span class="n">through</span> <span class="n">DIFFERENT</span> <span class="n">structural</span> <span class="n">operations</span><span class="o">.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">Do</span> <span class="ow">not</span> <span class="n">filter</span> <span class="k">for</span> <span class="n">applicability</span><span class="o">.</span> <span class="n">Maximize</span> <span class="n">the</span> <span class="n">diversity</span> <span class="n">of</span>
</span></span><span class="line"><span class="cl"><span class="n">imported</span> <span class="n">mechanisms</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">depth</span> <span class="n">of</span> <span class="n">what</span> <span class="n">they</span> <span class="n">reveal</span><span class="o">.</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h2 id="what-the-dis-prompt-produced">What the DIS Prompt Produced</h2>
<p>I tested the DIS prompt on a single, universally known practice, code review, using three LLMs (ChatGPT, Grok, and Gemini) cold, with no conversation. The practice was described factually: what it is, what it does, why it exists. No structural explanation was provided.</p>
<p>All three models successfully decomposed code review to its causal rule. The formulations varied but converged on the same structure: a single actor&rsquo;s unexamined mental model creates blind spots that propagate into the shared system. The solution intervenes by inserting independent perspective before integration. Clean decompositions, all passing the self-test.</p>
<p>The isomorphic searches produced genuinely distant domains: thymic selection in immunology, pheromone decay in ant colonies, the two-person rule in nuclear deterrence, seed variety trials in agriculture, the toile in bespoke tailoring, preview performances in theater. None of these are &ldquo;obvious&rdquo; analogues to software engineering. The DIS prompt forced real traversal.</p>
<p>The most striking results, though, were in the solution imports, and this is where the three models diverged.</p>
<p><strong>Gemini</strong> produced the most visceral redefinitions. From immunology: &ldquo;Code review isn&rsquo;t about adding features safely; it&rsquo;s an <em>immune response</em> designed to protect the self of the system.&rdquo; From ant pheromone decay: &ldquo;Silence is a signal. We treat &rsquo;no one has looked at this&rsquo; as &lsquo;it&rsquo;s waiting.&rsquo; In nature, it means &rsquo;this path is a dead end; let it die.&rsquo;&rdquo; From art restoration: &ldquo;The danger isn&rsquo;t the change; it&rsquo;s the <em>permanence</em>.&rdquo; Each revelation redefines in a single sentence what code review <em>is</em>.</p>
<p><strong>Grok</strong> produced the most systemic analyses. From academic publishing: &ldquo;The problem is epistemic capture — one developer&rsquo;s mental model dominating shared reality.&rdquo; From Wikipedia: &ldquo;Design the system so bad merges are cheap to detect and fix — make the artifact antifragile to imperfect additions.&rdquo; From theater: &ldquo;Reading code is a weak proxy for experiencing the system.&rdquo; Each revelation redefines the <em>system around</em> code review, the ecosystem rather than the practice.</p>
<p><strong>ChatGPT</strong> produced the most architectural output, including something neither of the other two generated: a classification table mapping seven distinct interception mechanisms to seven different points in the causal chain. Code review is just one of seven, positioned at one point. And the final redefinition was the most strategically useful: &ldquo;The problem is no longer &lsquo;how do we improve code review?&rsquo; It becomes: <em>at which point in the causal chain do we want to intercept inconsistency — and are we over-invested in a single interception point?</em>&rdquo;</p>
<p>Given the same practice and the same prompt, the three models produced qualitatively different types of insight: redefinition of <em>nature</em> (Gemini), redefinition of <em>system</em> (Grok), redefinition of <em>strategy</em> (ChatGPT). The creative signatures observed in the forward EIC experiments in Part III appear again in DIS, with different models illuminating different regions of the solution space.</p>
<p>One observation deserves emphasis: the quality of these DIS results, produced autonomously, is comparable to or better than what the forward EIC produced in Part III. The models didn&rsquo;t struggle with the reverse operation the way they sometimes struggled with forward extraction. This is preliminary, but it fits the hypothesis I&rsquo;ll discuss in Open Questions, which is that DIS may align more naturally with how Transformer attention mechanisms work.</p>
<hr>
<h2 id="the-verification-function">The Verification Function</h2>
<p>There is a second use for DIS that I didn&rsquo;t see initially, but that may be equally important.</p>
<p>When you decompose a solution and search for isomorphic domains, the results tell you something about the <em>quality</em> of the solution itself.</p>
<p>If the decomposition produces clean isomorphisms in multiple distant domains, and those domains have independently developed similar solutions, your solution is <em>structurally validated</em>. It responds to a real, universal constraint that multiple independent systems have converged on, and that convergence is the evidence.</p>
<p>If the decomposition produces incoherent results (the isomorphisms feel forced, the domains don&rsquo;t really share the constraint, the solutions in other domains bear no resemblance to yours), that&rsquo;s a signal. Your solution may be addressing a symptom rather than a structural constraint. Or the constraint you identified may not be the real one.</p>
<p>And if the decomposition reveals that other domains have <em>much more refined</em> solutions to the same constraint, with centuries of accumulated refinement that yours lacks, that tells you something about where to invest.</p>
<p>This is what makes DIS function as a proof. In mathematics, you validate a function by checking that its inverse returns you to the starting point. In the EIC-DIS framework, you validate a solution by decomposing it, finding isomorphic constraints, and checking whether the imported solutions converge with, complement, or contradict your original approach. Convergence is confirmation. Complementarity is enrichment. Contradiction is a warning.</p>
<hr>
<h2 id="the-full-cycle">The Full Cycle</h2>
<p>The forward and reverse operations are not separate tools. They are two directions of the same instrument, the <strong>EIC-DIS cycle</strong>, and they compose naturally:</p>
<p><strong>Forward EIC</strong>: Problem → extract rules from distant domains → invert → compose → novel solution.</p>
<p><strong>Reverse EIC</strong>: Solution → decompose to its causal rule → find isomorphic domains → import their accumulated expertise → refined solution.</p>
<p><strong>Second Forward</strong>: Refined solution → extract the new rules it embodies → find new domains → new inversions → new compositions.</p>
<p>Each cycle produces solutions that are both more creative (wider domain coverage) and more robust (validated against isomorphic precedent). The cycle doesn&rsquo;t converge to a single answer; it expands the space of possibilities while pruning the weak ones.</p>
<p>And if the finite constraint hypothesis holds, each cycle also contributes to a growing <em>map</em> of structural constraints and their cross-domain solutions. Over enough cycles, across enough practitioners, this map would constitute something that doesn&rsquo;t exist today: a navigable atlas of structural isomorphisms across human knowledge.</p>
<p>Rather than a static encyclopedia, that atlas would be a living instrument, continuously extended by every practitioner who runs an EIC-DIS cycle on a new problem and discovers a new connection. Seen this way, the EIC-DIS framework is more than a creativity tool or a verification mechanism. It is a <em>protocol for accumulating structural knowledge across domains</em>.</p>
<hr>
<h2 id="open-questions">Open Questions</h2>
<p>The experiments in Part III revealed that the forward EIC prompt, used autonomously, produces legitimate creative output but falls short of what iterative human-LLM conversation achieves, particularly at the composition level. This raises a question I haven&rsquo;t tested yet but that I believe deserves investigation:</p>
<p><strong>Is DIS easier for an LLM to execute autonomously than EIC?</strong></p>
<p>There is a structural reason to think it might be. The forward EIC fights against the model&rsquo;s strongest tendency, its pull toward statistically dense territory. You&rsquo;re asking it to leave what it knows well and traverse genuinely distant domains. DIS does the opposite: it starts from a concrete solution and searches for structural similarities across its training data. Finding patterns of similarity across distant representations is precisely what the attention mechanism in Transformers was designed to do, so the reverse operation works with the model&rsquo;s architecture rather than against it.</p>
<p>If this hypothesis holds, the gap between autonomous prompting and iterative conversation (documented in Part III) would be <em>smaller</em> in DIS mode than in EIC mode. DIS could be the mode where a well-crafted prompt comes closest to replicating the quality of sustained dialogue. It would also mean that the verification function of DIS is reliable in practice as an autonomous operation, and not only sound in theory.</p>
<p>I haven&rsquo;t run the experiments yet. But the question is testable with the same methodology used in Part III: give the reverse prompt to multiple models, compare the quality of isomorphic domain discovery and solution import, and measure the gap against iterative conversation results. If researchers are looking for a concrete next step from this series, this is it.</p>
<hr>
<h2 id="then-and-now">Then and Now</h2>
<p>When I started this series, I thought I was writing about how to use LLMs for creative problem-solving. I ended up somewhere I didn&rsquo;t expect.</p>
<p>The EIC framework began as a method for generating novel ideas. It became a theory of where novelty actually lives (in composition, not in transfer). It became an experimental instrument that revealed different creative signatures across models. It became a lens on the limits of autonomous agents. And now, with DIS as its reverse complement, it has become a bidirectional instrument, <strong>EIC-DIS</strong>, for exploring the structural isomorphisms between domains.</p>
<p>Somewhere along the way, the nature of the activity changed. EIC is about <em>invention</em>, creating something new from distant pieces. DIS is about <em>recognition</em>: discovering that what you need already exists somewhere, in some form. Creativity is sometimes less about making something that didn&rsquo;t exist than about seeing that it already does.</p>
<p>The forward EIC asks: what can other domains teach me about my problem?</p>
<p>DIS asks: what has the rest of the world already figured out that I don&rsquo;t know I&rsquo;m looking for?</p>
<p>And underneath both questions lies a hypothesis that I find genuinely exciting: the structural constraints of our world are finite. Which means that for every problem you face, someone, in some domain, century or discipline you&rsquo;ve never heard of, has probably already done the hard work. The solution exists; it&rsquo;s just wearing a costume you don&rsquo;t recognize, and the EIC-DIS framework is the instrument for seeing through it.</p>
<hr>
<p><em>Gabriel Mailhot is a Senior Subject Matter Expert at Desjardins, where he works on development practices, architecture, and complex organizational problems spanning technology, process, and governance. His 2003–2010 research focused on creative systems and metaphor-based retrieval. He publishes at scripting.pro.</em></p>
]]></content:encoded></item><item><title>Similarity Is (almost) Solved. Analogy Is Not.</title><link>https://scripting.pro/posts/analogy-not-similarity/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://scripting.pro/posts/analogy-not-similarity/</guid><description>On creativity, metaphor, and what AI still needs to learn: a research perspective from 2005–2010 that remains an open architectural problem today.</description><content:encoded><![CDATA[<p><em>On Creativity, Metaphor, and What AI Still Needs to Learn</em></p>
<hr>
<h2 id="a-theory-of-creativity-first">A Theory of Creativity First</h2>
<p>Before building any system, I needed to understand what creativity actually is.</p>
<p>Here is the formulation I arrived at around 2005, working as a researcher in Québec City:</p>
<p>Humans cannot create something entirely new from nothing.</p>
<p>We can only perceive reality through our senses. You cannot imagine a color that does not exist. You cannot conceive a sound you have never heard. The entire domain available to human creativity is bounded by accumulated sensory experience.</p>
<p>Creative thinking is therefore combinatorial rather than generative ex nihilo. The only way to produce something genuinely new within a bounded experiential space is to discover a structural correspondence between two distant domains that are already known.</p>
<p>When that correspondence holds, it is a metaphor.</p>
<p>But novelty alone is insufficient. A creative idea must also be useful, and usefulness is not intrinsic to the idea itself. It is evaluated by a human observer with a specific problem and a specific set of objectives. The same association can be brilliant in one context and irrelevant in another.</p>
<p>This leads to a precise formulation:</p>
<blockquote>
<p>A creative idea is an association between two distant known domains whose relevance is judged by a human evaluator as both novel and useful within a specific context.</p>
</blockquote>
<p>Novelty is a function of semantic distance between domains.</p>
<p>Utility is a function of the match with the problem and with the evaluator&rsquo;s own criteria.</p>
<p>From this theory, an architecture follows naturally.</p>
<hr>
<h2 id="the-architecture-20052010">The Architecture (2005–2010)</h2>
<p>If creativity is the identification of structural correspondences across distant domains, then a system designed to assist creativity should not search for what is similar. It should search for what is structurally equivalent across distance.</p>
<p>Between 2005 and 2010, working at a private imaging company in Québec City, I designed and implemented such an architecture.</p>
<p>Each object in the system (initially images, but the framework was modality-independent) was described through three structured vectors:</p>
<ul>
<li>A <strong>composition vector</strong> capturing spatial organization, perspective, and luminosity</li>
<li>An <strong>object-property vector</strong> encoding detected geometries, shapes, and physical attributes</li>
<li>A <strong>semantic vector</strong> containing qualitative keyword descriptors</li>
</ul>
<p>These vectors were computed automatically using classical computer vision techniques: color histograms, wavelet decompositions, geometric segmentation, texture analysis, spatial frequency distributions. Each image received a multidimensional signature, which we called a &ldquo;genetic code,&rdquo; stored in a database and queryable in real time across a collection of 100,000 images.</p>
<p>In today&rsquo;s terminology: a hand-crafted feature-embedding pipeline feeding a structured vector database, with sub-second query response time. Built in 2008, before those words existed in this context.</p>
<p>But the architectural intent was quite different from similarity search.</p>
<p>The system did not ask: <em>What is nearest?</em></p>
<p>It asked:</p>
<ul>
<li>Which objects share equivalent structural overlaps with a reference? <em>(alternative objects: substitutable, not combinable)</em></li>
<li>Which objects contribute complementary, non-overlapping components of a reference? <em>(complementary objects: combinable to form a stronger metaphor)</em></li>
<li>Which combinations increase analogical coherence rather than surface resemblance? <em>(linked objects: internal reinforcement as a tiebreaker)</em></li>
</ul>
<p>The metaphorical strength of a combination was computed as the aggregate overlap across structured dimensions. Combinations were ranked by analogical coverage, not by proximity.</p>
<p>A red apple and a white tablecloth, taken separately, are only partial metaphors for the Japanese flag. Combined, they cover it completely: one contributes the red circle, the other the white rectangle. Their combination scores higher not because they resemble the flag, but because together they account for its structure. That is analogy, not similarity.</p>
<p>Similar questions were being explored across content-based retrieval and computational creativity research during that period. The problem was recognized; what was missing were the representational tools to address it at scale.</p>
<hr>
<h2 id="why-this-distinction-still-matters">Why This Distinction Still Matters</h2>
<p>Modern embedding systems, including the best multimodal foundation models, are extraordinarily capable. They organize high-dimensional spaces where related concepts cluster together. Distance minimization in embedding space has proven to be a remarkably powerful paradigm.</p>
<p>But the analogical operation itself remains largely latent in these systems.</p>
<p>Current architectures optimize for distance, retrieve nearest neighbors, and interpolate within learned manifolds. They do not explicitly evaluate which pairs or sets of representations together form a structurally stronger mapping to a reference than any single element alone.</p>
<p>Foundation models can produce metaphor-like outputs through statistical association, sometimes impressively so. But the mechanism is emergent rather than structured, which means it cannot be controlled, composed, or inspected.</p>
<p>Making analogy a first-class, explicit, steerable operation in AI systems remains an open architectural problem.</p>
<hr>
<h2 id="what-ai-still-needs">What AI Still Needs</h2>
<p>Revisiting this research today, three limitations of current AI systems stand out, each rooted in the same theory of creativity I was working from in 2005.</p>
<h3 id="1-implicit-context-inference">1. Implicit context inference</h3>
<p>Human creativity does not operate in a vacuum. The relevance of any idea depends heavily on the context in which the human is operating: their constraints, objectives, mental state, environment. A skilled collaborator reads this context without being explicitly told.</p>
<p>Current AI systems depend almost entirely on what the user explicitly provides. They do not perceive the context in which the human evolves. For AI to become a genuine creative partner, it needs access to richer contextual signals, along with the capacity to infer meaning from them without requiring the human to articulate everything. That is a problem of situated cognition rather than retrieval.</p>
<h3 id="2-memory-as-a-knowledge-reservoir">2. Memory as a knowledge reservoir</h3>
<p>In my theory of creativity, the quality of associative reasoning is directly proportional to the richness of available memory. More diverse experience means more potential connections across distant domains.</p>
<p>Current AI systems have impressive parametric knowledge, but their memory architecture is largely static between training runs. The strategic management of episodic, contextual, and long-term memory, treated as a dynamic, queryable reservoir that evolves with use, remains underdeveloped. Memory, in this view, is the substrate of association and not just storage.</p>
<h3 id="3-emotional-memory">3. Emotional memory</h3>
<p>This is perhaps the most significant gap, and the one most likely to trigger an objection from researchers in reinforcement learning or affective computing.</p>
<p>The objection is predictable: AI systems do incorporate affective signals, through reward modeling, reinforcement learning from human feedback, and preference learning. This is true, and the work is serious.</p>
<p>But it addresses a different problem. These approaches treat affect as an external training signal: feedback injected during learning to shape behavior. Human emotional memory is structurally different. Rather than a signal applied to knowledge from the outside, it is woven into knowledge itself.</p>
<p>The neuroscientist Antonio Damasio demonstrated this precisely. Emotion is not separate from rational cognition; it is constitutive of it. Patients with damage to emotional memory centers do not become more rational. They lose the capacity to make decisions at all, because they can no longer assign differential weight to recalled experiences.</p>
<p>Every human memory carries affective encoding (fear, joy, discomfort, wonder) that influences which associations surface, which combinations feel meaningful, and which ideas resonate. This weighting is embedded in the retrieval structure itself rather than applied post-hoc.</p>
<p>Current AI systems process semantic relationships without this integrated affective architecture. The gap may therefore be architectural rather than merely incremental.</p>
<p>Building systems where affective structure is embedded in memory, instead of applied to it from outside, may be one of the most important open problems in AI research on creativity and reasoning.</p>
<hr>
<h2 id="why-i-am-writing-this-now">Why I Am Writing This Now</h2>
<p>The research described here was conducted between 2005 and 2010 and was not publicly discussed at the time due to contractual obligations.</p>
<p>Revisiting it now is less an exercise in retrospection than a recognition that the underlying questions remain open, and that the technological conditions to investigate them meaningfully finally exist.</p>
<p>I am not writing to claim priority. Parallel discovery is the norm in research, and I have no interest in relitigating timing. I am writing because the problem is still in front of us.</p>
<p>If you are working on reasoning architectures, compositional intelligence, contextual AI systems, or human–AI collaboration, I would like to talk.</p>
<p><em>The research described above is documented in an unpublished patent specification and a research poster produced in 2008.</em></p>
<hr>
<p><em>Gabriel Mailhot</em><br>
<em>Software Architect and Software Engineering Quality Advisor</em><br>
<em>Series: <a href="/series/organizational-engineering-for-the-ai-era/">Organizational Engineering for the AI Era</a></em></p>
]]></content:encoded></item></channel></rss>