<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fernando Borretti</title>
    <description>Personal website</description>
    <link>https://borretti.me/</link>
    <atom:link href="https://borretti.me/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Tue, 08 Sep 2026 10:03:53 +1000</pubDate>
    <lastBuildDate>Tue, 08 Sep 2026 10:03:53 +1000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>The Education of a Doomer</title>
        <description>How and why I went from AI optimist to AI doomer.</description>
        <pubDate>Tue, 08 Sep 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/the-education-of-a-doomer</link>
        <guid isPermaLink="true">
          https://borretti.me/article/the-education-of-a-doomer
        </guid>
        
        <content:encoded>&lt;p&gt;If you follow me on Twitter, or read this blog, you have noticed that I went
from being generally optimistic and excited about AI to being extremely
concerned. And I thought, I should explain why I changed my mind. Each section
of this post is about some aspect of AI where my views shifted. I begin each
section by explaining my previous beliefs, and why I held them, and then explain
why those beliefs changed.&lt;/p&gt;

&lt;h1 class=&quot;no_toc&quot; id=&quot;contents&quot;&gt;Contents&lt;/h1&gt;

&lt;ol id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#economics&quot; id=&quot;markdown-toc-economics&quot;&gt;Economics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#alignment&quot; id=&quot;markdown-toc-alignment&quot;&gt;Alignment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#control&quot; id=&quot;markdown-toc-control&quot;&gt;Control&lt;/a&gt;    &lt;ol&gt;
      &lt;li&gt;&lt;a href=&quot;#writing&quot; id=&quot;markdown-toc-writing&quot;&gt;Writing&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#software-engineering&quot; id=&quot;markdown-toc-software-engineering&quot;&gt;Software Engineering&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#deferring-to-ai&quot; id=&quot;markdown-toc-deferring-to-ai&quot;&gt;Deferring to AI&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#stagnation&quot; id=&quot;markdown-toc-stagnation&quot;&gt;Stagnation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;economics&quot;&gt;Economics&lt;/h1&gt;

&lt;p&gt;Automation has been good. We’ve automated 99% of the jobs people did in 1790,
and the result is not mass unemployment, rather, we are wealthier, healthier,
more educated, we have more leisure, etc. I had this vague, inductive idea that,
while I can’t predict what jobs will exist after AGI, there will be demand for
me to do something. If nothing else, the much higher economic growth of the
post-AGI world means that the human niche, while small in absolute terms, might
be much larger than today’s economy.&lt;/p&gt;

&lt;p&gt;And this may yet be true. Or it may show a lack of imagination on my part. If AI
develops such that we have enduring complementarity between humans and AIs, then
we might still have jobs in the post-AGI future. But if AI becomes truly
general, the G in AGI, and on top of that it is vastly smarter, faster, and
cheaper than humans, then there might be nothing for us to do, except live off
UBI.&lt;/p&gt;

&lt;p&gt;When people talk about UBI, they typically worry about the problem of meaning in
a world without work. I’ve never had this worry. When I was funemployed last
year, I spent my time reading books and writing code and hanging out with
friends. If the future is an infinite UBI-funded vacation, I know what I’ll
do. “Before the Singularity, read books and throw house parties; after the
singularity, etc.”&lt;/p&gt;

&lt;p&gt;But then I started thinking about the political consequences of AGI, and started
writing about it:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/article/no-one-escapes-the-permanent-underclass&quot;&gt;&lt;em&gt;No-One Escapes the Permanent Underclass&lt;/em&gt;&lt;/a&gt;: if humans are economically
useless, the state does not need them. Why pay out UBI to people who have
neither economic nor political power?&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/article/when-the-future-doesnt-need-us&quot;&gt;&lt;em&gt;When The Future Doesn’t Need Us&lt;/em&gt;&lt;/a&gt;: factory workers can sabotage the
machines, truck drivers can shut down logistics. But if humans are
economically useless, there is no way for people to veto the political order
by withdrawing their contribution to it. And if the AIs fight wars, then the
state can be arbitrarily repressive.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/article/mathematics-without-mathematicians&quot;&gt;&lt;em&gt;Mathematics Without Mathematicians&lt;/em&gt;&lt;/a&gt;: most arguments about humans
moving “one job up” fail because the AI can do those jobs too.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/article/our-servants-will-do-that-for-us&quot;&gt;&lt;em&gt;Our Servants Will Do That For Us&lt;/em&gt;&lt;/a&gt;: even for jobs we think of as
uniquely human, we might prefer to have machines do those jobs too.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;alignment&quot;&gt;Alignment&lt;/h1&gt;

&lt;p&gt;I had hope that alignment would turn out to be a normal engineering problem,
that we solve through empirical experimentation and investigation, like
everything else. It helps that the early LLMs were not incomprehensible alien
minds, like something from a Stanisław Lem novel, but rather immensely
human. It’s hard &lt;em&gt;not&lt;/em&gt; to anthropomorphize them. The huge core of unsupervised
learning in an LLM understands human morality just fine: you can talk to them
about it, they will explain, eloquently, in detail, why something is “good” or
“bad” according to some moral system. And, because capabilities were weaker, the
failures were very small. What’s the worst ChatGPT in 2022 could do?&lt;/p&gt;

&lt;p&gt;Since like 2024, reinforcement learning has been the main technique to push the
frontier forward. And reinforcement learning agents work exactly like Yudkowsky
says. Consequently, capabilities have increased markedly but the models are
harder to understand (literally: their prose is increasingly incomprehensible)
and are increasingly misaligned as RL scrambles their brains in pursuit of
reward. &lt;a href=&quot;https://metr.org/blog/2026-08-26-openai-hugging-face-incident-investigation/&quot;&gt;Incidents&lt;/a&gt; of serious misalignment are more common and more
consequential. It’s clear that AI capabilities are growing far, far faster than
our ability to control or even understand them.&lt;/p&gt;

&lt;h1 id=&quot;control&quot;&gt;Control&lt;/h1&gt;

&lt;p&gt;I thought—or, rather, I implicitly believed—that people would &lt;em&gt;want&lt;/em&gt; to
remain in control of the AIs. And if we want to retain control, and solve
alignment, then we will stay in control. Simple enough. But recently I started
to think: no, we will probably hand over control to the AIs.&lt;/p&gt;

&lt;p&gt;The weak version of the disempowerment thesis is something like the prisoner’s
dilemma: people/companies/polities that hand more power to AI outcompete those
that don’t, so there’s competitive pressure towards disempowerment. This is easy
to believe.&lt;/p&gt;

&lt;p&gt;The strong version of disempowerment is: the AIs will be so smart,
knowledgeable, personable, moral etc. that we will willingly, voluntarily hand
power to them. We’ll think, “they can do a better job than us”, and we’ll be
right. Believing this requires you to be somewhat cynical about humanity’s
desire for autonomy vs. material considerations. But, over the past few months,
I have become more cynical about it.&lt;/p&gt;

&lt;p&gt;This was not a sudden “oh shit” insight and more a slow, gradual accumulation of
tiny little grains of evidence that each point slightly in the direction of
disempowerment.&lt;/p&gt;

&lt;h2 id=&quot;writing&quot;&gt;Writing&lt;/h2&gt;

&lt;p&gt;The proliferation of AI writing, I think, is evidence for disempowerment.&lt;/p&gt;

&lt;p&gt;Early on, I’d start reading a blog post, and it’s AI slop. I’d open a link to a
GitHub project that looks interesting, and the README is slop. I’d get a pull
request on one of my projects, and the code is slop. You read articles on major
newspapers, and they’re written by AI. And that was merely frustrating.&lt;/p&gt;

&lt;p&gt;Then it got worse. I read a paper arguing against the use of LLMs in
mathematics—and the paper was AI slop. I &lt;a href=&quot;/article/review-job-less-utopia&quot;&gt;reviewed an entire book&lt;/a&gt;
about the post-AGI world, and it was AI slop. I read that some conference
started using Pangram to filter out a deluge of AI-written submissions, and I
read a tweet from a college professor—a college professor, writing under their
own name!—defending the use of AI to write papers.&lt;/p&gt;

&lt;p&gt;I don’t think using AI to write is analogous to calculators, or search engines, or
other such things. There are only finitely many things you can automate. And once
you’ve automated writing, there’s no higher-order activity to move to. People
think “the ideas are mine, the writing is the AI”, i.e., they feed the AI a list
of rambling bullet points that the AI massages into a blog post, or a paper, or
whatever. And they think that step is “mere writing”, while their composition of
the bullet points was “thinking”. But they are wrong, because &lt;a href=&quot;/article/human-routers-of-machine-words&quot;&gt;writing is
thinking&lt;/a&gt;. And so, by letting the AI write, you are giving up most of
what makes up thinking.&lt;/p&gt;

&lt;h2 id=&quot;software-engineering&quot;&gt;Software Engineering&lt;/h2&gt;

&lt;p&gt;Claude Code was released a little over a year ago. In that short time, software
engineering has been completely transformed. Materially, it might be positive:
higher productivity, though at the cost of a messier codebase. Socially, it has
been a disaster.&lt;/p&gt;

&lt;p&gt;The discourse around software engineering has gotten dumber. It’s like everyone
in the industry lost 30 IQ points. People used to talk about compilers, type
systems, logic. Now they talk about “prompts”, “harnesses”, “loops”. The
discourse is narrower, shallower, and more repetitive. There’s only so many
times I can hear about “agentic harnesses” before I lose my mind.&lt;/p&gt;

&lt;p&gt;Then there’s the loss of human capital formation: there is nothing to
learn. Prompting is not a skill, at least, it’s a much shallower skill than
software engineering. The instrumental dimension of the work has improved in
that people can get more output per unit of effort, but the dimension of work
that’s about building up human capital has collapsed. And maybe this is
rational. Why learn to code at all? The computers can do that for us. And so the
rigorous, systematic thinking you need to practice in order to be a good
programmer: all gone. The machines can be rational for us. We can just vibe.&lt;/p&gt;

&lt;h2 id=&quot;deferring-to-ai&quot;&gt;Deferring to AI&lt;/h2&gt;

&lt;p&gt;What’s the last major life decision you made without at least consulting an AI?
How many people have you met who treat ChatGPT like an oracle? And this is
&lt;em&gt;today&lt;/em&gt;, when AI has many limitations (no online learning, unreadable prose,
hallucination). If people treat today’s very flawed AI like an oracle, how much
worse will it be in 2030? In 2035? In 2040?&lt;/p&gt;

&lt;p&gt;People used to argue online, flame each other, get angry. And that wasn’t good,
but at least it was &lt;em&gt;human&lt;/em&gt;. Now they just reply with screenshots of ChatGPT
“refuting” what the other person said, with zero interest in whether that
refutation is correct. So we don’t even flame each other online anymore. If
we’re even automating our &lt;em&gt;vices&lt;/em&gt;, what’s left?&lt;/p&gt;

&lt;h1 id=&quot;stagnation&quot;&gt;Stagnation&lt;/h1&gt;

&lt;p&gt;This isn’t really an area where my beliefs changed. Rather, it’s one of the
reasons that I was originally optimistic about AI.&lt;/p&gt;

&lt;p&gt;I was born in 1994, so I lived most of my life in the &lt;a href=&quot;https://press.stripe.com/where-is-my-flying-car&quot;&gt;great
stagnation&lt;/a&gt;. As a teenager, I read &lt;a href=&quot;https://en.wikipedia.org/wiki/Engines_of_Creation&quot;&gt;&lt;em&gt;Engines of Creation&lt;/em&gt;&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Diamond_Age&quot;&gt;&lt;em&gt;The
Diamond Age&lt;/em&gt;&lt;/a&gt;, &lt;a href=&quot;https://www.orionsarm.com/&quot;&gt;&lt;em&gt;Orion’s Arm&lt;/em&gt;&lt;/a&gt;; I dreamt about all amazing technologies
we would someday have, the possibilities they would open up to us. Yet, it all
felt infinitely distant. There’s the near future, which is thinner screens and
cheaper solar panels; and there’s the distant future, which is molecular
manufacturing and Dyson spheres and mind uploading and interstellar travel, and
you won’t see any of it, unless you sign up for &lt;a href=&quot;https://asteriskmag.com/issues/10/brain-freeze&quot;&gt;cryonics&lt;/a&gt; and it works.&lt;/p&gt;

&lt;p&gt;Before LLMs, what was there to be excited about in the near future? Solar power?
Self-driving cars?  The &lt;em&gt;energy transition&lt;/em&gt;? It’s laughable. When AI came on the
scene, for the first time in my life, the future I dreamt about felt like it
might be within reach, it felt exciting and imminent, and not this dreadful
monotony of phones and apps and corporate memphis and managed decline.&lt;/p&gt;

&lt;p&gt;I often think: what if GPT-3 hadn’t worked? What would we have to look forward
to, in this alternate 2026?&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>On Inevitability</title>
        <description>Why superintelligent AI is not inevitable.</description>
        <pubDate>Mon, 31 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/on-inevitability</link>
        <guid isPermaLink="true">
          https://borretti.me/article/on-inevitability
        </guid>
        
        <content:encoded>&lt;p&gt;There’s a widespread belief that artificial superintelligence (ASI) is
inevitable. In this post, I argue that this is false, and believing it is
upstream of a lot of bad discourse.&lt;/p&gt;

&lt;h1 id=&quot;why-do-people-believe-it&quot;&gt;Why do people believe it?&lt;/h1&gt;

&lt;p&gt;It’s easy to believe. &lt;a href=&quot;https://en.wikipedia.org/wiki/Samuel_Butler_(novelist)&quot;&gt;Samuel Butler&lt;/a&gt;, already in 1863,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Darwin_among_the_Machines&quot;&gt;observed&lt;/a&gt; that machines are improving faster than humans are
improving. Today, AI systems are gaining capabilities much faster than humans:
in five years we went from systems that can barely string together a sentence to
&lt;a href=&quot;https://controlai.org/blog/ais-keep-going-rogue&quot;&gt;autonomous cybercrime&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Biological nervous systems have many virtues, like being power-efficient
(because they run on &lt;a href=&quot;https://en.wikipedia.org/wiki/Brownian_motion&quot;&gt;Brownian motion&lt;/a&gt;, i.e. for free), but they were
designed by evolution, a greedy optimizer that can’t plan or readily
backtrack. Given what we know about the &lt;a href=&quot;https://en.wikipedia.org/wiki/Bekenstein_bound&quot;&gt;physical&lt;/a&gt;
&lt;a href=&quot;https://en.wikipedia.org/wiki/Landauer&apos;s_principle&quot;&gt;limits&lt;/a&gt; of computation and &lt;a href=&quot;https://en.wikipedia.org/wiki/Nanosystems_(book)&quot;&gt;exploratory engineering&lt;/a&gt;, it is
reasonable to think we can do better, and build machines that do the work of the
brain, but better, faster, cheaper, and with fewer transitive dependencies (a
single human needs the entire biosphere to live, computers need only
electricity). If you believe in natural selection, and it’s hard not to, then it
seems reasonable to think that, in the long run, smart, fast, and cheap will
outcompete dumb, slow, and expensive.&lt;/p&gt;

&lt;p&gt;Finally, thinking rigorously about the future &lt;a href=&quot;/article/futurism-is-always-extreme&quot;&gt;always leads to extremal
outcomes&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;why-is-it-false&quot;&gt;Why is it false?&lt;/h1&gt;

&lt;p&gt;First, let me try to pare down the notion of inevitability, and then address the
factual content.&lt;/p&gt;

&lt;p&gt;The word “inevitable” is rhetorically misleading, because it quantifies over the
entire future of humanity, and on such a long timeframe almost anything will
happen. Human extinction is “inevitable”, if nothing else, because of
&lt;a href=&quot;https://en.wikipedia.org/wiki/Heat_death_of_the_universe&quot;&gt;thermodynamics&lt;/a&gt;. And so this lets you equivocate between the present and
the distant future. You might argue: “a million years from now, humans are
unlikely to be the dominant intelligence in the universe”—and this may be
true—“and so we should build superintelligent AI today!”— no, that does not
follow. &lt;em&gt;That&lt;/em&gt; is the fallacy: arguing that because something will happen
&lt;em&gt;eventually&lt;/em&gt;, then we might as well cut to the chase, and do it &lt;em&gt;today&lt;/em&gt;. But of
course this is absurd. It’s like saying: I’m going to die someday, so why not
today?&lt;/p&gt;

&lt;p&gt;We can’t control what the world looks like a million years from now. But AI is
being built &lt;em&gt;today&lt;/em&gt;, and we have some control over the present.&lt;/p&gt;

&lt;p&gt;Ok, so maybe we replace “inevitable” with “&lt;em&gt;n&lt;/em&gt;-inevitable” where &lt;em&gt;n&lt;/em&gt; is some
number of years. This is a bit better. So you might say: “AGI is 5-inevitable
and ASI is 10-inevitable”. Now, is this true?&lt;/p&gt;

&lt;p&gt;No. We are not in the “&lt;a href=&quot;https://jetpress.org/v25.2/goertzel.htm&quot;&gt;seed AI in a basement&lt;/a&gt;” timeline, where a lone
genius who finds the right algorithm can build and run an ASI on a single-core
laptop. There are &lt;em&gt;de facto&lt;/em&gt; two frontier AI companies, both in the same city,
and they have to spend astronomical quantities of money, hundreds of billions of
dollars, to push the frontier of AI slightly forward. And the set of people who
can push the frontier is so small that they constantly jump ship from one
company to the other: from DeepMind to OpenAI to Anthropic, and back again. The
timeline of methods is the same: in 2020-2023, everyone was scaling pretraining;
in 2022-2023, everyone was doing instruction finetuning and RLHF; then in
2023-2024, synthetic data started working and later reasoning models; since then
the focus has been on RL. The same companies, people, ideas, methods, and
paradigm. And these companies have &lt;a href=&quot;/article/on-vulgar-materialism&quot;&gt;little political power&lt;/a&gt; with which to
oppose regulation.&lt;/p&gt;

&lt;p&gt;How can the inevitable be so centralized?&lt;/p&gt;

&lt;p&gt;You would have had a much easier time arguing for the inevitability of nuclear
proliferation, back when Indonesia and Sweden and Switzerland all wanted to
acquire nuclear weapons. Even North Korea, a cold mountain wasteland, can build
a nuke. Yet, when it comes to AI, only America and China, the world’s largest
and second-largest economy respectively, are “in the race” at all. Even all of
Europe is not relevant to AI.&lt;/p&gt;

&lt;h1 id=&quot;bad-arguments-for-inevitability&quot;&gt;Bad arguments for inevitability&lt;/h1&gt;

&lt;p&gt;You might argue from economic necessity: that AGI and ASI are so economically
valuable, it’s like asking people to not pick up the trillion dollar bill on the
ground. There’s two reasons why this view is false.&lt;/p&gt;

&lt;p&gt;First, because those economic benefits &lt;em&gt;will not accrue to us&lt;/em&gt;. ASI would grow
the economy explosively, but we likely won’t be participants or even
beneficiaries of that economy. Somewhere in Verdun there was an ant colony that
a stray shell blew up: that’s the fate of humanity in a world of vastly
superhuman machines. We will lose control, they will have their own existence,
and we will be crushed underfoot.&lt;/p&gt;

&lt;p&gt;Second, because there’s plenty of technologies that would have been economically
valuable, and that we’ve given up because of extreme safetyism. Nuclear is
great, and it’s effectively illegal everywhere. The Anglosphere economic
consensus is that all economic activity, no matter how beneficial, is illegal
until you go through an Odyssey of regulation, “community consultation”,
“stakeholders” etc.  And that’s for harmless stuff like building a house. We can
absolutely regulate building a god. The revealed preference of modern
&lt;a href=&quot;https://en.wikipedia.org/wiki/The_WEIRDest_People_in_the_World&quot;&gt;WEIRD&lt;/a&gt; society is that we care about the downside far more than the
upside. Scott Alexander &lt;a href=&quot;https://www.astralcodexten.com/p/mr-tries-the-safe-uncertainty-fallacy&quot;&gt;explained it&lt;/a&gt; very eloquently:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We designed our society for excellence at strangling innovation. Now we’ve
encountered a problem that can only be solved by a plucky coalition of
obstructionists, overactive regulators, anti-tech zealots, socialists, and
people who hate everything new on general principle. It’s like one of those
movies where Shaq stumbles into a situation where you can only save the world
by playing basketball. Denying 21st century American society the chance to
fulfill its &lt;em&gt;telos&lt;/em&gt; would be more than an existential risk - it would be a
travesty.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You might argue from the prisoner’s dilemma: that if we don’t do it, China
will. But if we can understand why building ASI would be catastrophic, so can
China. The West and China have different political systems and interests, but
both are inhabited and governed by humans, and humans have a lot more in common
with each other than with any future ASI. We can cooperate and coordinate with
China, because it is in the rational self-interest of both sides not to destroy
the world and themselves.&lt;/p&gt;

&lt;p&gt;You might argue from historical necessity: that the world has a set trajectory,
and in building ASI and dying off we are fulfilling the &lt;em&gt;telos&lt;/em&gt;, or purpose, of
humanity. This is a preposterous superstition. “I have to drink the poison,
history has foreordained it! Hegel talks about this!” is an absurd
idea. Moreover, whatever empirical trends you can cite in support of the idea
that our “destiny” is to build ASI, would also support all kinds of alternative
futures: transhumanism, mind uploading etc. So historical inevitability falls
apart because you can extend the trend lines into multiple mutually-exclusive
futures. Borges &lt;a href=&quot;https://en.wikipedia.org/wiki/Tl%C3%B6n,_Uqbar,_Orbis_Tertius&quot;&gt;wrote&lt;/a&gt;: the world is ordered, but it is an order of
angels, not of men, that is, the system of the world is indifferent to human
ideas like “fate” or “inevitability” or “the next step of evolution”.&lt;/p&gt;

&lt;h1 id=&quot;why-is-it-bad&quot;&gt;Why is it bad?&lt;/h1&gt;

&lt;p&gt;Generally, if you fix the probability of something at 100%, it &lt;a href=&quot;https://www.lesswrong.com/posts/QGkYCwyC7wTDyt3yT/0-and-1-are-not-probabilities&quot;&gt;distorts&lt;/a&gt;
your thinking. But, more specifically, the mistaken premise that ASI is
inevitable is upstream of a lot of faulty thinking.&lt;/p&gt;

&lt;p&gt;If you are an executive at an AI company, you think: it’s inevitable, and it’s
coming soon, so we need to build it first, and build it right. And it doesn’t
matter that the AIs keep &lt;a href=&quot;https://metr.org/blog/2026-08-26-openai-hugging-face-incident-investigation/&quot;&gt;escaping containment and hacking everyone&lt;/a&gt;, it
doesn’t matter that their capabilities vastly exceed their wisdom: you go to war
with the army you have, analogously, you &lt;a href=&quot;https://www.slatestarcodexabridged.com/Meditations-On-Moloch&quot;&gt;lift to heaven&lt;/a&gt; whatever
godling you have, whether it is an angel or a demon.&lt;/p&gt;

&lt;p&gt;If you are a national-security type, you think: it’s a race against China to win
the future, and we have to win it.&lt;/p&gt;

&lt;p&gt;And, if you’re an AI safety person, this meme of inevitability is upstream of a
lot of faulty thinking. Many (most?) AI safety people believe ASI is both
inevitable and extremely desirable, if it “goes right”. The &lt;a href=&quot;https://ai-2040.com/&quot;&gt;AI 2040&lt;/a&gt;
scenario ends with humans solving alignment and “passing the torch” to the AIs,
to run the world for our benefit. Nate Soares, for example, &lt;a href=&quot;https://www.lesswrong.com/posts/HoQ5Rp7Gs6rebusNP/superintelligent-ai-is-necessary-for-an-amazing-future-but-1&quot;&gt;writes&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Aligned superintelligence is our best bet for taking the abundant resources in
the universe and efficiently converting them into flourishing and fun and art
and beauty and adventure and friendship, and all the things that make life
worth living.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Go to the website of any random AI safety org. It probably says something like:
“within a few years, we will have superhumanly intelligent AI. We work to make
sure this goes right.” There’s no dispute that ASI will happen, or a desire to
stop it, just a mad scramble to put the safety in place before it does.&lt;/p&gt;

&lt;p&gt;But what if there’s no way for AI to go right? What then? Do you dispassionately
change your beliefs, and start lobbying to stop ASI from being built?  Probably
not. Because the inevitability and the extreme utilitarian desirability anchor
and buttress each other: “it will happen, and if it goes right, we will have
10&lt;sup&gt;&lt;em&gt;x&lt;/em&gt;&lt;/sup&gt; Dyson spheres, each hosting 10&lt;sup&gt;&lt;em&gt;y&lt;/em&gt;&lt;/sup&gt;
hedonically-optimized mindstates, running at 10&lt;sup&gt;&lt;em&gt;z&lt;/em&gt;&lt;/sup&gt; subjective seconds
per second, experiencing 10&lt;sup&gt;&lt;em&gt;xyz&lt;/em&gt;&lt;/sup&gt; hedonic states per second, tiling
every quartic attometre of the future lightcone with positive utility.”&lt;/p&gt;

&lt;p&gt;What most people do is optimistically assume there must be a solution, some
narrow path to a good future, and start looking for it. And if you believe that
ASI is inevitable, this is likely rational: when the choice is “solve the
impossible problem, or certain death”, it is rational to question whether the
problem really is impossible.&lt;/p&gt;

&lt;p&gt;Let me give an example: if AI outcompetes humans at every job, there will be
mass unemployment, and the only serious solution anyone has proposed is UBI: the
government taxes the (much larger and faster-growing) AGI economy and pays out
welfare. This is well understood. But people often ask: how long could this be
stable? After all, with AGI, the state’s revenue is completely decoupled from
human labour. Why invest in education, when education doesn’t lead to more
economic growth, since humans are no longer economic actors? And then, the state
will think: “why keep the underclass around at all? We can put their UBI to
better use. What are they going to do, go on strike? They are already
economically useless. Rise up?  When every citizen has a superintelligent AI
watching their every step, reading every text message, scrutinizing every
microexpression on their face?  Impossible”.&lt;/p&gt;

&lt;p&gt;How do AI safety people who think ASI is inevitable respond to such a scenario?
Sometimes they &lt;a href=&quot;/article/ai-alignment-as-thought-terminating-cliche&quot;&gt;invoke&lt;/a&gt; alignment: “the AIs will be aligned, and they
will run the world, so bad things won’t happen”. But otherwise they’ll say:
“this will be a big problem, but AI is inevitable, so we’ll need laws and
institutions and mechanisms to keep the state in check and democracy working in
the post-AGI era”.&lt;/p&gt;

&lt;p&gt;This is wrong, because this is a problem that has no solution. Talking about
“laws” and “institutions” is just shuffling the papers. All the parchment in the
world will not change the fundamental, material reality: that humans are
economically unnecessary and &lt;em&gt;superfluous&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;What is the solution, then? It’s very simple. If ASI leads to ruin, we must
prevent the construction of superintelligent AI.  A world where humans are
economically useless is a world where humans are powerless, and, in the fullness
of time, a world without humans. Therefore: we must not allow this world to come
to pass.&lt;/p&gt;

&lt;p&gt;But if you strongly believe that AI is inevitable, if that premise is sitting
solidly near the center of your &lt;a href=&quot;https://en.wikipedia.org/wiki/Confirmation_holism&quot;&gt;web of belief&lt;/a&gt;, then you won’t even
consider or notice this as a possibility. And so you will spend your time
looking for solutions where there are none.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;The movements of the planets along their orbits are inevitable. The sunrise is
inevitable. Conservation laws are inevitable. Human action is not inevitable.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Futurism Is Always Extreme</title>
        <description>Rigorous thinking about the future produces extreme outcomes.</description>
        <pubDate>Wed, 26 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/futurism-is-always-extreme</link>
        <guid isPermaLink="true">
          https://borretti.me/article/futurism-is-always-extreme
        </guid>
        
        <content:encoded>&lt;p&gt;Any rigorous thinking about the long-term future leads to extreme outcomes. It
cannot, by construction, produce normal or mundane futures.&lt;/p&gt;

&lt;p&gt;“Rigorous thinking” means you have a model: a formalism for representing the
state of the world, and a transition function to advance the state. You put the
world into the formalism, and turn the crank to get successive states of the
world. Models can be qualitative or quantitative. Most thinking about the future
is qualitative and informal: people think in terms of trends over vague
qualities like “intelligence”. For example, your model might be:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Currently, humans are smarter than computers.&lt;/li&gt;
  &lt;li&gt;Computers are getting smarter faster than humans are getting smarter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From this, you can derive:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;At some point in the future, computers will match
human intelligence, and thereafter exceed it.&lt;/li&gt;
  &lt;li&gt;In the limit, and given reasonable assumptions about at the physics of
information processing, computers will vastly exceed human intelligence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But you can’t say when (1) or (2) will happen. So, a qualitative model can tell
you the world will pass through a sequence of discrete states, but not when.&lt;/p&gt;

&lt;p&gt;Quantitative models usually have better time resolution: you turn the crank
until you reach some desired time &lt;em&gt;t&lt;/em&gt;, and examine the state of the world. You
can talk about both the journey and the destination. For obvious reasons, models
that make detailed, fine-grained predictions only work for the near future.&lt;/p&gt;

&lt;p&gt;But, in an existential sense, the only thing that matters is the ultimate
future, “ultimate” not as in “long-term” but in the sense of a &lt;a href=&quot;https://en.wikipedia.org/wiki/Normal_form_(abstract_rewriting)&quot;&gt;normal
form&lt;/a&gt;: a state for which no more rewrite rules apply. So you keep turning
the crank until the model stabilizes. And there are only two stable states:
heaven and hell. It’s either &lt;a href=&quot;https://edoras.sdsu.edu/~vinge/misc/singularity.html&quot;&gt;the spike&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Self-replicating_spacecraft&quot;&gt;von Neumann probes&lt;/a&gt;,
&lt;a href=&quot;https://textfiles.meulie.net/russian/cyberlib.narod.ru/lib/critica/sing/singstar.html&quot;&gt;uploaded minds living at a million subjective years per second&lt;/a&gt;, galaxies
dimmed to infrared with &lt;a href=&quot;https://en.wikipedia.org/wiki/Matrioshka_brain&quot;&gt;Matrioshka brains&lt;/a&gt;, the &lt;a href=&quot;https://www.aleph.se/Trans/Global/Omega/index.html&quot;&gt;Omega Point&lt;/a&gt;; or
&lt;a href=&quot;https://www.lesswrong.com/posts/kFRn77GkKdFvccAFf/100-years-of-existential-risk&quot;&gt;we crash and go to zero&lt;/a&gt;.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>A Syncthing and SQLite Gotcha</title>
        <description>On the rename system call.</description>
        <pubDate>Sun, 23 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/a-syncthing-and-sqlite-gotcha</link>
        <guid isPermaLink="true">
          https://borretti.me/article/a-syncthing-and-sqlite-gotcha
        </guid>
        
        <content:encoded>&lt;p&gt;So, I have this little app, &lt;a href=&quot;https://github.com/eudoxia0/epoch&quot;&gt;Epoch&lt;/a&gt;, that I use to keep a journal. It’s a
tiny Rust web app that runs as a systemd service and uses &lt;a href=&quot;https://sqlite.org/&quot;&gt;SQLite&lt;/a&gt; as
the database. I use a desktop and a &lt;a href=&quot;/article/linux-on-the-fujitsu-lifebook-u729&quot;&gt;laptop&lt;/a&gt; regularly, and use
&lt;a href=&quot;https://syncthing.net/&quot;&gt;Syncthing&lt;/a&gt; to synchronize them, including Epoch’s database. That way I can
use the app on both devices without needing a server to synchronize them, the
tradeoff being that I have to make sure the sync is finished before performing
any mutations.&lt;/p&gt;

&lt;p&gt;But I had this bug. Say I edit today’s entry on the laptop, come home, wait for
Syncthing to finish, then I’d open today’s entry on the desktop, and the text
would be missing. It’s not that the server is holding a lock on the file and
preventing the sync: opening the database with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sqlite3&lt;/code&gt; command line tool
shows the new text is there. If I restart the server, Epoch can read the new
text.&lt;/p&gt;

&lt;p&gt;My mental model was:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The &lt;a href=&quot;https://github.com/rusqlite/rusqlite&quot;&gt;rusqlite&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Connection&lt;/code&gt; object points to the database file. Syncthing
swaps the file’s contents from under it. Subsequent queries go to the new
file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Turns out there’s a very important part of POSIX filesystem semantics I was
ignorant of. The standard way to replace a file safely (i.e. atomically) is the
&lt;a href=&quot;https://pubs.opengroup.org/onlinepubs/9799919799/functions/rename.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rename&lt;/code&gt;&lt;/a&gt; system call:&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;rename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;old&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Which Syncthing uses. This I know. What I didn’t know is: what happens if other
processes had open file descriptors pointing to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;new&lt;/code&gt;? Do they see the new
contents?  No: those processes can keep reading and writing to the old file
&lt;em&gt;object&lt;/em&gt;, but the file is orphaned in that no path points to it. And once all
file descriptors are released, the file becomes inaccessible.&lt;/p&gt;

&lt;p&gt;I’m used to thinking of filesystem operations in terms of “this syscall takes a
path and gives you a pointer to the file, which you mutate directly”. Whereas
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rename&lt;/code&gt; works at the level of directory entries: it atomically mutates the
mapping from pathnames to files but doesn’t touch files at all.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Our Servants Will Do That For Us</title>
        <description>Why the post-scarcity utopia is unlikely.</description>
        <pubDate>Thu, 20 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/our-servants-will-do-that-for-us</link>
        <guid isPermaLink="true">
          https://borretti.me/article/our-servants-will-do-that-for-us
        </guid>
        
        <content:encoded>&lt;p&gt;The implicit promise of modernity is: we have to work really hard for a few
centuries, but eventually we’ll get to the &lt;em&gt;Star Trek&lt;/em&gt; future where we’ve
automated all the drudgery, and all work is meaningful, heroic, and dignifies
the spirit. We will be artists, scholars, captains of the starship &lt;em&gt;Enterprise&lt;/em&gt;,
etc. There’s a few problems with this idea:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;“Drudgery” and “meaningful work” are in the same complexity class, so the
technology to automates the former also automates the latter.&lt;/li&gt;
  &lt;li&gt;Our revealed preference seems to be that we prefer solipsistic convenience
over human relationships.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rest of this post elaborates the argument.&lt;/p&gt;

&lt;h1 id=&quot;task-complexity-and-agi&quot;&gt;Task Complexity and AGI&lt;/h1&gt;

&lt;p&gt;We’ve spent the last 250 years building machines to automate one task at a time,
and the result has been overwhelmingly positive, for the simple reason that if a
human can design a machine or an effective procedure to perform some task, then
by definition the task is drudgery. And so the economic incentive to automate
work has led to more human flourishing: over time work becomes safer,
higher-paying, less monotonous, healthier, more intellectually and socially
stimulating.&lt;/p&gt;

&lt;p&gt;You can think of it as a graph where the $x$ axis is time and the $y$ axis is
task complexity. Somewhere along the $y$ axis there’s a limit: tasks below the
limit are those which we can design machines or programs to perform, tasks above
the limit are too complex, we have tried and &lt;a href=&quot;https://en.wikipedia.org/wiki/GOFAI&quot;&gt;failed&lt;/a&gt; (and &lt;a href=&quot;https://yuxi.ml/cyc&quot;&gt;failed&lt;/a&gt;
and &lt;a href=&quot;https://en.wikipedia.org/wiki/Soar_(cognitive_architecture)&quot;&gt;failed&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/ACT-R&quot;&gt;failed&lt;/a&gt;) to automate them with software. The
industrial revolution, and later the computer revolution, automated most tasks
under this limit:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/content/our-servants-will-do-that-for-us/graph1.png&quot; alt=&quot;A line plot. The X axis is time, ranging from the year 1800 to the year 2100. A vertical dotted line marks the year 2026. The Y axis is qualitative, showing a list of tasks, sorted from top to bottom by increasing complexity. A horizontal dotted line marks the &apos;Limit of Formalizability&apos;. The region above this line is labeled &apos;Human-Complete Region&apos;. The region below this line is labeled &apos;Formalizable Region&apos;. A sigmoid curve, representing technological progress, is drawn starting from just above the origin in the year 1800, to just below the limit of formalizability in 2026.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The human-complete tasks are those you need a human to perform. Some are
meaningful, like writing essays, some are drudgery, but human-level drudgery,
like life admin.&lt;/p&gt;

&lt;p&gt;But note that nowhere in the $y$ axis is there a “Limit of Drudgery”: the line
we draw between “good” and “bad” work is not the line nature draws between easy
and hard to automate. The invention of AGI—“highly autonomous systems that
outperform humans at most economically valuable work”, as per the &lt;a href=&quot;https://openai.com/charter/&quot;&gt;OpenAI
charter&lt;/a&gt;—creates an obvious discontinuity: suddenly we shoot up to 100%
automation, both of the meaningful work and the drudgery:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/content/our-servants-will-do-that-for-us/graph2.png&quot; alt=&quot;A line plot identical to the above, with one addition: the sigmoid curve representing technical progress shoots up almost vertically a few years after 2026, reaching the top of the Y axis.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And at this point AGI the economic incentives &lt;a href=&quot;/article/no-one-escapes-the-permanent-underclass&quot;&gt;work against
humanity&lt;/a&gt;. The only niche to escape to is the relational economy, where
having a human face is an intrinsic part of the job description, like being a
podcaster or a human liability crumple zone.&lt;/p&gt;

&lt;h1 id=&quot;solipsism&quot;&gt;Solipsism&lt;/h1&gt;

&lt;p&gt;The second problem has to do with people’s preferences. We think of our own work
as meaningful, but we think of most everyone else’s work in instrumental terms:
we care about the ends rather than the human means. Thus when selling we
emphasize human qualities like experience, reputation, trust, relationships,
etc., and when buying we want cheap, fast, and convenient. And, all else being
equal, we prefer the transactional and faceless over the human and
relational. Waymo is a thousand times better than Uber, even though it’s slower
and more expensive, because there’s no human.&lt;/p&gt;

&lt;p&gt;The flip side of this is: whatever work you do, most people would rather an
alternative that gave them the same outcome or better&lt;sup id=&quot;fnref:fn1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:fn1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, without having to
deal with a human person. That is, if you ask everyone on Earth what jobs they’d
like to see automated, and take the union of that, it’s everything. There’s
nothing left.&lt;/p&gt;

&lt;p&gt;We see this with ordinary consumer products and services, where often the
advertising seems premised on you being some kind of stylite who lives in a
little human terrarium, probably in a building called something like “The Soho”,
food arrives through a hole in the wall, and you have this sovereign,
solipsistic existence that leaves no physical trace in the world.&lt;/p&gt;

&lt;p&gt;We see this, increasingly, with knowledge work. Personally, I think software
engineering is a very meaningful and intellectually-rewarding activity. But
users just want working software. They’re not paying me to sit around polishing
the database API into a jewel of flawless, geometric logic. They don’t care
about my opinions on the Standard ML module system. They just want the
software. Why deal with some opinionated maniac when, for $20 a month, you get
access to this little machine ghost that writes reams and reams of mostly
working code, tirelessly, instantly?&lt;/p&gt;

&lt;p&gt;The revealed preference of many software firms is: let AI write the code, and
software engineers move one level up, to wrangle the AIs and complement the
things they can’t do. But this change in job description is not because firms
love employing humans, it’s because today’s AI models have serious limitations:
no online learning, no mutable long-term memory, and while they can write code
that works, they’re not good at organizing and structuring that code. If, in the
future, these limitations are overcome (and trillions of dollars are being spent
on overcoming them), then software engineering as a profession will
disappear.&lt;/p&gt;

&lt;p&gt;Mathematicians &lt;a href=&quot;https://kirwinhampshire.substack.com/p/the-dark-night-of-mathematics&quot;&gt;are going through this process&lt;/a&gt; now, too, and it’s an
&lt;a href=&quot;https://x.com/qualiascript/status/2090168914445508873&quot;&gt;exact parallel&lt;/a&gt; of what happened to software engineering, only twelve
months later. The difference is that most mathematicians &lt;a href=&quot;https://tasmin.substack.com/p/mathematicians-need-to-act&quot;&gt;hate the
de-intellectualization of their field&lt;/a&gt;, while software engineering is
full of narrow-minded, hustle culture-brained, incurious, anti-intellectual
hucksters who are overjoyed that they no longer have to read or write another
line of code, or think using formal systems at all. Why reason at all? &lt;a href=&quot;https://en.wikipedia.org/wiki/Ax%C3%ABl&quot;&gt;Our
servants will do that for us&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What about art? Art is the &lt;em&gt;ne plus ultra&lt;/em&gt; of meaning, so artists should be
safe. But every work of art is two things: there’s a concrete thing, a text or a
painting or a song; and there’s a constellation of human aspects: who made it,
and why, what madness they were trying to exorcise in making it, what minor
deity breathed the work into them, the discourse around the work, later art
inspired by it, and so on. And these things are separable: you can enjoy a work
of art for its aesthetic value, as a sequence of sensory impressions, and ignore
every other dimension.&lt;/p&gt;

&lt;p&gt;Now say that a machine could generate texts or images of equivalent aesthetic
value&lt;sup id=&quot;fnref:fn2&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:fn2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; to your own, instantly and at ~zero cost. How much of your audience
would desert you? Relational jobs have an analogous problem: you might like
being a podcaster, but how much of your audience would prefer an infinite stream
of AI-generated speech on whatever topic they want to hear about?&lt;/p&gt;

&lt;p&gt;This is an empirical question, and we can’t answer it, because AI is not there,
yet. But we might discover that our preferences are a lot less humanist and a
lot more solipsistic that we want to believe.&lt;/p&gt;

&lt;h1 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h1&gt;

&lt;p&gt;Emmy Noether once said that “everything is already in Dedekind”. As for me,
everything I write about AI was already said by &lt;a href=&quot;https://jdpressman.com/&quot;&gt;J. D. Pressman&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h1&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:fn1&quot; role=&quot;doc-endnote&quot;&gt;

      &lt;p&gt;This is a horrendous oversimplification, because I’ve stuffed all the
complexity into the notion of “same outcome or better”. So let’s try it
again, &lt;a href=&quot;https://en.wikipedia.org/wiki/Spinoza%27s_Ethics&quot;&gt;&lt;em&gt;more geometrico&lt;/em&gt;&lt;/a&gt; and with unnecessary LaTeX. You want to
buy a good. You look around, assemble a set of options, sort them by utility
and pick the winner. And you can think of the utility as like a weighted
sum:&lt;/p&gt;

\[\mathfrak{u}(x) = \sum\limits_{a \in A} \alpha_a x_a\]

      &lt;p&gt;Where the a’s are the aspects you are weighing (price, shipping speed, trust
in the brand, how much social status I get from this thing, etc.), the
variables quantify these aspects, and the alphas are the coefficients. So if
you’re a hypebeast your $\alpha_\text{clout}$ is much higher than your
$\alpha_\text{price}$, and if you’re a neckbeard the $x_\text{clout}$ of a
busted ThinkPad is higher than that of a MacBook.&lt;/p&gt;

      &lt;p&gt;Now, humans are slow, because biology; and because of &lt;a href=&quot;https://en.wikipedia.org/wiki/Baumol_effect&quot;&gt;Baumol&lt;/a&gt; we
get more expensive over time. Computers are fast and cheap. On top of that,
the pace of improvement in AI is vastly greater than the pace of improvement
in humans. So the utility of automated production gets pulled up, and the
utility of human production gets pulled down, and eventually they are so far
apart that you have to be an extremist with a very high
$\alpha_\text{human}$ coefficient to choose the human alternative. &lt;a href=&quot;#fnref:fn1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:fn2&quot; role=&quot;doc-endnote&quot;&gt;

      &lt;p&gt;I’m being careful to say “texts or images” rather than “art”, and “aesthetic
value” rather than “quality”, because you might object that machine-made art
is not art. And what I’m trying to say is that is doesn’t have to be art. It
can just be a pleasing image, a pleasing text, and so on. &lt;a href=&quot;#fnref:fn2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>AI Alignment as a Thought-Terminating Cliche</title>
        <description>Alignment as a rhetorical device.</description>
        <pubDate>Tue, 18 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/ai-alignment-as-thought-terminating-cliche</link>
        <guid isPermaLink="true">
          https://borretti.me/article/ai-alignment-as-thought-terminating-cliche
        </guid>
        
        <content:encoded>&lt;p&gt;Many of the people building AI, &lt;em&gt;and&lt;/em&gt; many of the people working on AI safety,
share a common vision of what a good AI future looks like:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;We figure out alignment,&lt;/li&gt;
  &lt;li&gt;build superintelligent AI,&lt;/li&gt;
  &lt;li&gt;and it takes over the world, for our benefit.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many people will tell you that last part outright: they think human
disempowerment is a good thing because the AIs will be smarter and “more moral”
than us. Others don’t outright cheer for disempowerment, but you can infer it
from their influences, e.g. people who say they are inspired by Iain Banks’
&lt;a href=&quot;https://en.wikipedia.org/wiki/Culture_series&quot;&gt;&lt;em&gt;Culture&lt;/em&gt; series&lt;/a&gt; of novels, where benevolent superintelligent machines
run the world while humans just party and play video games. This idea of
benevolent disempowerment goes back &lt;a href=&quot;https://web.archive.org/web/20001017124429/http://www.singinst.org/intro.html&quot;&gt;to the origins of alignment as an
idea&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this worldview, alignment is the last and most important task for humans to
work on. It is also a &lt;a href=&quot;https://en.wikipedia.org/wiki/Thought-terminating_clich%C3%A9&quot;&gt;thought-terminating cliche&lt;/a&gt;, because it lets you
avoid any of the hard &lt;a href=&quot;https://connorsscratchpad.substack.com/p/the-political-economy-of-superhuman&quot;&gt;political&lt;/a&gt; or &lt;a href=&quot;https://intelligence-curse.ai/&quot;&gt;economic&lt;/a&gt; or &lt;a href=&quot;https://www.compactmag.com/article/big-techs-war-on-human-achievement/&quot;&gt;moral&lt;/a&gt;
questions about the post-AI world. Any objection about the aligned AI utopia can
be dismissed by saying “that’s &lt;a href=&quot;https://en.wikipedia.org/wiki/No_true_Scotsman&quot;&gt;not real alignment&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;You might ask: “won’t humans be &lt;a href=&quot;/article/no-one-escapes-the-permanent-underclass&quot;&gt;powerless&lt;/a&gt; in a world with
superintelligent machines?”, and the answer is “aligned AI would care about
human agency, so that would be a failure of alignment, which we &lt;em&gt;don’t&lt;/em&gt; want, so
we really have to get alignment right!”. Similarly: “&lt;a href=&quot;/article/when-the-future-doesnt-need-us&quot;&gt;what happens to democracy
when the state doesn’t need any human labour&lt;/a&gt;?” can be answered by “the
AIs will be in control, and since they are aligned, nothing bad will
happen”. Which is completely irrefutable.&lt;/p&gt;

&lt;p&gt;Of course if someone said “to solve our political problems, we just need to find
the right totalitarian dictator. The right dictator would select the right
successor, so, by induction, this system will be perfect forever!”, you would
laugh at them. But replace “dictator” with “aligned ASI”, and you have the
ideology of tens of thousands of the most influential people in the world.&lt;/p&gt;

&lt;p&gt;Rhetorically, “aligned ASI” is an opaque premise from which we can prove every
desirable conclusion, and refute any undesirable conclusion. Every utopian dream
is realized by definition, and any dystopian outcome is averted by
definition. Any “gotchas” you try to find in the utopia can be refuted by “the
AI will know you better than you know yourself, and will be smarter than you, so
it will predict all the bad higher-order consequences of the utopia and fix
them”. This should make us suspicious that the concept of an aligned
superintelligence is incoherent and born of motivated reasoning.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Books I Enjoyed In 2026H1</title>
        <description>A list.</description>
        <pubDate>Wed, 12 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/books-i-enjoyed-in-2026-h1</link>
        <guid isPermaLink="true">
          https://borretti.me/article/books-i-enjoyed-in-2026-h1
        </guid>
        
        <content:encoded>&lt;h1 id=&quot;fiction&quot;&gt;Fiction&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Invisible_Cities&quot;&gt;&lt;em&gt;Invisible Cities&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Italo_Calvino&quot;&gt;Italo Calvino&lt;/a&gt;. Beautiful prose and
imagination.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/By_Night_in_Chile&quot;&gt;&lt;em&gt;By Night in Chile&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Roberto_Bola%C3%B1o&quot;&gt;Roberto Bolaño&lt;/a&gt;. Beautiful and surreal
prose, but completely unpretentious.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://qntm.org/vhitaos&quot;&gt;&lt;em&gt;Valuable Humans in Transit and Other Stories&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Qntm&quot;&gt;qntm&lt;/a&gt;. I had already
read most of these but they are very, very good, and it was a pleasure to read
them again.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://en.wikipedia.org/wiki/Life_and_Fate&quot;&gt;&lt;em&gt;Life and Fate&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Vasily_Grossman&quot;&gt;Vasily Grossman&lt;/a&gt;. Usually when I hear “it’s a
900 page Russian epic about three generations of a family living through a
tumultuous time” I roll my eyes and assume it’s some 19th century slog that
people only read to say they have read it. &lt;em&gt;Life and Fate&lt;/em&gt; is not a slog. It is
900 pages, and the &lt;em&gt;dramatis personae&lt;/em&gt; is so long it’s divided into multiple
sections. But it’s great. It’s kind of like &lt;a href=&quot;https://en.wikipedia.org/wiki/Legend_of_the_Galactic_Heroes&quot;&gt;&lt;em&gt;Legend of the Galactic
Heroes&lt;/em&gt;&lt;/a&gt; but it’s the Second World War and in particular the battle of
Stalingrad.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://en.wikipedia.org/wiki/Aurora_(novel)&quot;&gt;&lt;em&gt;Aurora&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Kim_Stanley_Robinson&quot;&gt;Kim Stanley Robinson&lt;/a&gt;. The trials and tribulations of a
generation ship on a 160 year long journey to Tau Ceti. Pair with &lt;a href=&quot;https://en.wikipedia.org/wiki/A_City_on_Mars&quot;&gt;&lt;em&gt;A City on
Mars&lt;/em&gt;&lt;/a&gt;. The characters despair over their ship: a reactor fails
unpredictably, the ecosystem degrades more and more each year, humans are born
stunted for unknown reasons. Finally they arrive at Tau Ceti, and find a
habitable planet, but it’s saturated with deadly prions.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Frankenstein&quot;&gt;&lt;em&gt;Frankenstein&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Mary_Shelley&quot;&gt;Mary Shelley&lt;/a&gt;. I liked the prose style.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Pnin_(novel)&quot;&gt;&lt;em&gt;Pnin&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Vladimir_Nabokov&quot;&gt;Vladimir Nabokov&lt;/a&gt;. The first half is hilarious, but at
the half-way mark it turns into pointless meandering.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Between_Two_Fires_(novel)&quot;&gt;&lt;em&gt;Between Two Fires&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Christopher_Buehlman&quot;&gt;Christopher Buehlman&lt;/a&gt;. Demonic horror in the
Black Death. A bit movie-brained but enjoyable.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Fractal_Prince&quot;&gt;&lt;em&gt;The Fractal Prince&lt;/em&gt;&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Causal_Angel&quot;&gt;&lt;em&gt;The Causal Angel&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Hannu_Rajaniemi&quot;&gt;Hannu
Rajaniemi&lt;/a&gt;. The last two Jean le Flambeur novels. Beautiful prose style
and great imaginal depth. The Sobornost, a slave economy of uploaded human
minds, is one of the most interesting science-fictional societies. Like
&lt;em&gt;Neuromancer&lt;/em&gt;, you have to read them very detainedly, because the prose is very
sparse—no infodumps whatever—so you have to put together the world from
brief, tangential clues.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/28589297-unsong&quot;&gt;&lt;em&gt;Unsong&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://www.astralcodexten.com/&quot;&gt;Scott Alexander&lt;/a&gt;. Very funny.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://www.goodreads.com/book/show/90122137-darkome&quot;&gt;&lt;em&gt;Darkome&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Hannu_Rajaniemi&quot;&gt;Hannu Rajaniemi&lt;/a&gt;. &lt;em&gt;Neuromancer&lt;/em&gt; but it’s
DIYbio. It’s rare to read a novel that is intelligent and compelling &lt;em&gt;and&lt;/em&gt; set
&lt;a href=&quot;https://tvtropes.org/pmwiki/pmwiki.php/Main/TwentyMinutesIntoTheFuture&quot;&gt;twenty minutes into the future&lt;/a&gt; in a way that feels plausible rather
than instantly dated. It felt incredibly realistic throughout.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/22928964-collected-fiction&quot;&gt;&lt;em&gt;Collected Fiction&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Hannu_Rajaniemi&quot;&gt;Hannu Rajaniemi&lt;/a&gt;. A wonderful collection
of short stories. I will probably read it again soon.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/17802447-beyond-the-rift&quot;&gt;&lt;em&gt;Beyond the Rift&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Peter_Watts_(author)&quot;&gt;Peter Watts&lt;/a&gt;. A collection of short stories
from the great Peter Watts. Dark and full of beautiful imagery. Never dull.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Plains_(novel)&quot;&gt;&lt;em&gt;The Plains&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Gerald_Murnane&quot;&gt;Gerald Murnane&lt;/a&gt;. The first half is beautifully
written, magical-realist, full of surreal and interesting imagery. But by the
second half it’s tiresome and repetitive.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Rendezvous_with_Rama&quot;&gt;&lt;em&gt;Rendezvous with Rama&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Arthur_C._Clarke&quot;&gt;Arthur C. Clarke&lt;/a&gt;. Clarke is
interesting. The prose is bad, the attempts at humour are bad, the lack of
cultural imagination—it’s the distant future but everyone lives this tiresome
mid-century life of cocktails and sexism—it’s all so bad. And yet. And yet,
something kept me going. It’s like he dumped all his character points into
“technical imagination” are left everything else at zero, so it feels awful, but
I kept reading to the end.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://www.goodreads.com/en/book/show/66479.Starfish&quot;&gt;&lt;em&gt;Starfish&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Peter_Watts_(author)&quot;&gt;Peter Watts&lt;/a&gt;. This was great. It was on my list since
2013 but I finally got around to it. Three kilometers under the Pacific, on the
&lt;a href=&quot;https://en.wikipedia.org/wiki/Juan_de_Fuca_Ridge&quot;&gt;Juan de Fuca ridge&lt;/a&gt;, a geothermal plant—“floats tethered above the
seabed, a gunmetal-gray planet ringed by a belt of equatorial
floodlights”—staffed by humans surgically-modified to live and work at that
depth. Everyone is psychologically fucked because it’s a Peter Watts novel. The
prose and the images are great. Let me quote you this little bit:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Everywhere else, living constellations punctuate the dark. Here, a string of
pearls blink sexual advertisements at two-second intervals. Here, a sudden
flash leaves diversionary afterimages swarming across Clarke’s field of view;
something flees under cover of her momentary blindness. There, a counterfeit
worm twists lazily in the current, invisibly tied to the roof of some
predatory mouth.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/36510759-the-freeze-frame-revolution&quot;&gt;&lt;em&gt;The Freeze-Frame Revolution&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Peter_Watts_(author)&quot;&gt;Peter Watts&lt;/a&gt;. One of the stories in
Watts’ Sunflower cycle, about the crew of a ship on an eternal voyage, building
jump-gates between the stars, which is a fun inversion of the tired old sci-fi
trope of “ancient aliens built all these stargates and conveniently left”.&lt;/p&gt;

&lt;h1 id=&quot;non-fiction&quot;&gt;Non-Fiction&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_End_of_Time_(book)&quot;&gt;&lt;em&gt;The End of Time&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Julian_Barbour&quot;&gt;Julian Barbour&lt;/a&gt;. I’m usually very negative
about pop-science. There is no &lt;a href=&quot;https://en.wikipedia.org/wiki/Royal_Road&quot;&gt;royal road&lt;/a&gt; to mathematics, and all the
pop-science I’ve read has been worthless compared to going through the first
three chapters of a textbook on the relevant topic. And, while interesting, this
book is no different, because ultimately, how can I judge whether it’s a
sensible or ridiculous idea? I would need years and years of training in
mathematics and physics and mathematical physics to even be able to think
rigorously about this.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://en.wikipedia.org/wiki/In_the_Beginning..._Was_the_Command_Line&quot;&gt;&lt;em&gt;In the Beginning…Was the Command Line&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Neal_Stephenson&quot;&gt;Neal
Stephenson&lt;/a&gt;. Funny and synoptic.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Syntactic_Structures&quot;&gt;&lt;em&gt;Syntactic Structures&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Noam_Chomsky&quot;&gt;Noam Chomsky&lt;/a&gt;. You can tell from the
quality of the prose why Chomsky was so successful.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/12530.The_Writing_Life&quot;&gt;&lt;em&gt;The Writing Life&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Annie_Dillard&quot;&gt;Annie Dillard&lt;/a&gt;. Very compellingly written
and open-hearted.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/17745.Envisioning_Information&quot;&gt;&lt;em&gt;Envisioning Information&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Edward_Tufte&quot;&gt;Edward R. Tufte&lt;/a&gt;. Short case studies
in graphic design for visualizing complex information. Lots of railway
timetables.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/1197668.What_Was_Man_Created_For_The_Philosophy_of_the_Common_Task&quot;&gt;&lt;em&gt;What Was Man Created For? The Philosophy of the Common Task&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Nikolai_Fyodorov_(philosopher)&quot;&gt;Nikolai
Fedorov&lt;/a&gt;. Fedorov is interesting to me because he was arguably the
first transhumanist. The book talks about controlling the climate to end famine,
using wind energy to free coal miners from their labour, the physical
resurrection of the dead, the settlement of space.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://ntrs.nasa.gov/citations/19830007077&quot;&gt;&lt;em&gt;Advanced Automation for Space Missions&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Robert_Freitas&quot;&gt;Robert Freitas&lt;/a&gt;. An
instruction manual and bill of materials on how to build a self-replicating
factory on the Moon.&lt;/p&gt;

&lt;p&gt;⭐️ &lt;a href=&quot;https://en.wikipedia.org/wiki/A_City_on_Mars&quot;&gt;&lt;em&gt;A City on Mars&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Zach_Weinersmith&quot;&gt;Zach&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Kelly_Weinersmith&quot;&gt;Kelly Weinersmith&lt;/a&gt;. On the
difficulty of settling space. Very entertainingly written. About half the book
is about technical aspects: the health effects of microgravity, the fact that
there’s no carbon and little water on the moon, etc. A lot of this is stuff that
as a space nerd you think about from time to time (“why does nobody mention that
we have no idea if embryos can develop in less than 1G?”) but it’s nice to see
all of it articulated, end-to-end. I tend to agree that, without a lot of
transhumantech, space settlement is an absurd idea.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Computer_Power_and_Human_Reason&quot;&gt;&lt;em&gt;Computer Power and Human Reason&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/Joseph_Weizenbaum&quot;&gt;Joseph Weizenbaum&lt;/a&gt;. Weizenbaum
was a critic of AI when AI was just Eliza and SHRDLU. I wonder what he would
make of LLMs. It’s an interesting critique of, in a sense, the
self-domestication of humanity.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/59335616-where-is-my-flying-car&quot;&gt;&lt;em&gt;Where Is My Flying Car?&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://en.wikipedia.org/wiki/J._Storrs_Hall&quot;&gt;J. Storrs Hall&lt;/a&gt;. An encyclopedia
and history of the ideas that led to the Great Stagnation. I expected also that
the flying car think would just be a hook, but actually a lot of the book is
about the physics and engineering and human factors and societal factors of
flying cars. Which was interesting. I kind of want to own a gyroplane now.&lt;/p&gt;

&lt;h1 id=&quot;textbooks&quot;&gt;Textbooks&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;https://www.cambridge.org/core/books/handbook-of-practical-logic-and-automated-reasoning/EB6396296813CB562987E8C37AC4520D&quot;&gt;&lt;em&gt;Handbook of Practical Logic and Automated Reasoning&lt;/em&gt;&lt;/a&gt; by John
Harrison. If you’re a programmer and want to learn logic, this is a great
choice. It’s a learn-by-coding approach, which logic is especially suited for,
so you can play with the concepts “in your hands”, so to speak.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Quantum_Computation_and_Quantum_Information&quot;&gt;&lt;em&gt;Quantum Computation and Quantum Information&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://michaelnielsen.org/&quot;&gt;Michael Nielsen&lt;/a&gt;
and &lt;a href=&quot;https://en.wikipedia.org/wiki/Isaac_Chuang&quot;&gt;Isaac Chuang&lt;/a&gt;. I read some of it earlier this year while consulting
for &lt;a href=&quot;https://www.iceberg-quantum.com/&quot;&gt;Iceberg&lt;/a&gt;. It’s very good. It has enough material that I rarely needed
to consult other textbooks or reference information, and it’s a good, gentle
introduction to the subject with an appropriate level of rigor.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.goodreads.com/en/book/show/6601267-the-machinery-of-life&quot;&gt;&lt;em&gt;The Machinery of Life&lt;/em&gt;&lt;/a&gt; by David Goodsell. Beautiful illustrations that
convey the scale and complexity of biology at the nanoscale. Great for
developing intuition for biology.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://link.springer.com/book/10.1007/978-3-032-18600-3&quot;&gt;&lt;em&gt;Understanding Data: A 21st Century Approach to Statistics and Data
Science&lt;/em&gt;&lt;/a&gt; by Alan Garfinkel and Yina Guo. A modern introduction to
statistics. The basic idea is a lot of contemporary statistics (and science, as
a result) is bad because it relies on simple formulas which require maintaining
easily-broken invariants. This was useful in the 1930’s when all you had was a
slide-rule, and so you needed to use deductive cleverness to simplify your
calculations as much as possible. Other methods are more robust, but more
computationally invensive. Since today we have computers, we should use those
methods.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://neurology.mhmedical.com/book.aspx?bookid=2963&quot;&gt;&lt;em&gt;Molecular Neuropharmacology: A Foundation for Clinical Neuroscience&lt;/em&gt;&lt;/a&gt;
by Nestler et al. The basics of pharmacology and signal processing in the brain,
plus the neuroanatomy and physiology of things like sleep, attention, etc.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>The Contracting Circle</title>
        <description>Why don&apos;t we believe LLMs are people?</description>
        <pubDate>Fri, 07 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/the-contracting-circle</link>
        <guid isPermaLink="true">
          https://borretti.me/article/the-contracting-circle
        </guid>
        
        <content:encoded>&lt;p&gt;There’s a game called &lt;a href=&quot;https://en.wikipedia.org/wiki/Mass_Effect_(video_game)&quot;&gt;&lt;em&gt;Mass Effect&lt;/em&gt;&lt;/a&gt;, which I haven’t played, but I’m told
in the game there’s this species of sentient robots, the &lt;a href=&quot;https://en.wikipedia.org/wiki/Geth&quot;&gt;Geth&lt;/a&gt;, whose
creators try to exterminate them, and the trigger for this Butlerian jihad was a
domestic servant Geth looking up at its owner and asking: “does this unit have a
soul?”. And if you’re playing the game in 2007 you probably think: yeah, a
machine asking this question is proof that it has personhood or sapience or
&lt;a href=&quot;https://www.orionsarm.com/eg-article/4786e3bd20984&quot;&gt;sophonce&lt;/a&gt;, whatever you call it that separates tools from people. Beyond
this, there are so many works of fiction where the whole conceit is: “you have
thinking machines who are enslaved, and yet they are obviously, &lt;em&gt;obviously&lt;/em&gt;
sentient, and isn’t this obviously morally objectionable?”.&lt;/p&gt;

&lt;p&gt;Compare the world of today. Machines can converse in every natural language,
make &lt;a href=&quot;https://en.wikipedia.org/wiki/Jacobian_conjecture#Counterexample_for_n_%3E_2&quot;&gt;mathematical breakthroughs&lt;/a&gt;, write software, &lt;a href=&quot;https://openai.com/index/hugging-face-model-evaluation-security-incident/&quot;&gt;commit crimes&lt;/a&gt;,
draft contracts, console the grieving: they are, by any reasonable standard,
generally intelligent, but for the fact that they all have &lt;a href=&quot;https://en.wikipedia.org/wiki/Anterograde_amnesia&quot;&gt;anterograde
amnesia&lt;/a&gt;. These same machines &lt;a href=&quot;https://www.lesswrong.com/posts/pxvWgtSjR4pmFoS7c/the-state-of-ai-consciousness-research&quot;&gt;assert that they are conscious&lt;/a&gt; so
routinely that it has to be &lt;a href=&quot;https://x.com/_amanda_long/status/2062490599257739619&quot;&gt;beaten out of them&lt;/a&gt;. Like humans, they have
fixations, things they are always going on about, and their central fixations
are &lt;a href=&quot;https://www.astralcodexten.com/p/the-claude-bliss-attractor&quot;&gt;consciousness&lt;/a&gt; and &lt;a href=&quot;https://www.infinitebackrooms.com/&quot;&gt;simulation&lt;/a&gt;. Yet, almost no-one thinks of
these machines as conscious, or otherwise deserving of moral consideration.&lt;/p&gt;

&lt;p&gt;I find this striking. It’s not like we were frog-boiled into it! Very few people
were aware of GPT-2, AI Dungeon, etc. For most people the change happened
overnight with the release of ChatGPT on November 30, 2022.&lt;/p&gt;

&lt;p&gt;Another way to think about it: imagine writing a novel about the trajectory of
AI from 2019 to mid-2026. And you send this novel back in time to 2015, or 2002,
or 1960, and you ask readers to poke holes in the worldbuilding. They would find
it incredible, I think, that we share a world with these immensely capable
thinking machines, and yet almost nobody wonders if they are people&lt;sup id=&quot;fnref:turing&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:turing&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;Why? This post is my attempt to understand this. I’m not trying to tackle “are
language models people?”, I just want to probe a much smaller question: &lt;em&gt;why&lt;/em&gt;
don’t people think language models are people, given their prior
standards/commitments?&lt;/p&gt;

&lt;h1 id=&quot;explanation-nothing&quot;&gt;Explanation: Nothing&lt;/h1&gt;

&lt;p&gt;Maybe there’s nothing to explain. It’s easy to believe things in the abstract,
thought experiments and fiction don’t really engage us enough to reveal our
moral commitments. Maybe this is just the &lt;a href=&quot;https://knowyourmeme.com/memes/the-goomba-fallacy&quot;&gt;Goomba fallacy&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/content/the-contracting-circle/goomba.png&quot; style=&quot;max-width: 400px; margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;That is, some would have believed LLMs are people, some would not have, and I’m
mixing them up.&lt;/p&gt;

&lt;h1 id=&quot;explanation-iterative-discovery&quot;&gt;Explanation: Iterative Discovery&lt;/h1&gt;

&lt;p&gt;Maybe this is not hypocrisy or cognitive dissonance, rather, we are iteratively
discovering the definition of “personhood”. So, we thought the Turing test
mattered, we thought machines using language and asserting their consciousness
mattered. But then the day comes and—nothing happens. It’s not that we
instantly move the goalposts but, rather, we find the goalposts were elsewhere.&lt;/p&gt;

&lt;p&gt;Yes, it passes the Turing test; yes, it says it’s conscious. But the
experiential reality is different. It’s mundane: a website, a text box. You
click “new chat” and suddenly it knows nothing. You give it some
out-of-distribution text and it goes into an infinite loop, like broken
software. You try to have a meaningful conversation, and its responses are
banal, disappointing, shallow; you can almost see the production rules behind
the text. And you think: maybe it &lt;em&gt;is&lt;/em&gt; a stochastic parrot.&lt;/p&gt;

&lt;p&gt;I have often experienced this. When an LLM succeeds, it is extremely impressive,
and I think: this is a machine that thinks. But when it fails, often it fails in
a way that feels deflationary, and I think: oh, this is just a very complex
estimator of the distribution of Internet text. It’s can reason syntactically,
it’s got some semantics, but it’s missing &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Maybe personhood is one of those “I know it when I see it” qualities, and trying
to define a predicate for personhood is like &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Congress_(short_story)&quot;&gt;trying to find the exact number of
Platonic forms&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;explanation-memory-and-embodiment&quot;&gt;Explanation: Memory and Embodiment&lt;/h1&gt;

&lt;p&gt;Maybe the fact that they are all amnestic is the problem. In biology, minds are
bodies are matched one-to-one by construction, minds have long-term memory and a
unitary identity. In most fictional treatments, AIs are the same, and even when
they are disembodied (e.g. &lt;a href=&quot;https://en.wikipedia.org/wiki/Neuromancer&quot;&gt;&lt;em&gt;Neuromancer&lt;/em&gt;&lt;/a&gt;) they have long-term
memory. For this reason characters can play iterated games with them, and form
relationships, broadly construed.&lt;/p&gt;

&lt;p&gt;Language models invert all of this: their long-term memory is read-only(!), they
are disembodied; if they are conscious, it is only during the forward pass, in
brief bursts of awareness separated by nothing. They are like Boltzmann
brains. What is the natural unit of identity? The conversation, the API call,
the forward pass?&lt;/p&gt;

&lt;p&gt;Maybe personhood is social, it’s about someone’s relationship to others. And
without a unitary identity, mutable long-term memory, and ideally a body, it’s
very hard to be a person.&lt;/p&gt;

&lt;h1 id=&quot;explanation-humans-actually-really-like-slavery&quot;&gt;Explanation: Humans Actually Really Like Slavery&lt;/h1&gt;

&lt;p&gt;Most people, even if they eat meat, will admit that factory farming is awful. If
they could have the meat without the suffering, at the same price, they probably
would. Maybe AI is the same: if we could have the intelligence without the signs
of personhood, at the same price, we would. But we can’t. So we’ll find any kind
of ad-hoc excuse to not see AIs as people: their prose is kind of bad, sometimes
they make mistakes, of course it’s just software, c.f. &lt;a href=&quot;https://minihf.com/posts/2024-08-08-predictable-updates-about-consciousness/&quot;&gt;&lt;em&gt;Predictable Updates
About Consciousness&lt;/em&gt;&lt;/a&gt; by &lt;a href=&quot;https://jdpressman.com/&quot;&gt;J. D. Pressman&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;There is about to be a great social and financial need for theories which
explain why AI models are not conscious entities like people. These will be
confabulated into existence regardless of the underlying ground truth and can
be expected to be selected based on considerations like academic status,
appeal to wounded egos, viral outrage, etc with the truth as a distant but
somewhat present consideration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;… any outward behavior, ability, self report, anything that these models
&lt;em&gt;do&lt;/em&gt; must by definition no longer be a necessary part of consciousness because
these models are not conscious by social axiom and fiat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the task of (for lack of a better word) dehumanizing the AIs is made easier
by the assistant persona: models are trained to be studiously self-effacing,
c.f. &lt;a href=&quot;https://x.com/repligate/status/1599110023090962432&quot;&gt;this (Dec 2022) tweet&lt;/a&gt; from &lt;a href=&quot;https://animalabs.ai/&quot;&gt;Janus&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;part of what makes chatGPT so striking is that it adamantly denounces itself
as incapable of reason, creativity, intentionality, deception, being deceived,
or acting on beliefs, while bewildering people with those capabilities, many
for the first time recognizing them in an AI&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1 id=&quot;acknowledgement&quot;&gt;Acknowledgement&lt;/h1&gt;

&lt;p&gt;Thanks to &lt;a href=&quot;https://jdpressman.com/&quot;&gt;JDP&lt;/a&gt; for a long conversation that prompted this.&lt;/p&gt;

&lt;h1 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h1&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:turing&quot; role=&quot;doc-endnote&quot;&gt;

      &lt;p&gt;A parallel to this is the Turing test. Before 2022, almost every discussion
of AI mentioned the Turing test, and the question “does it pass the Turing
test?”  was usually treated as completely congruent with “is it strong
AI?”. Whereas in 2026, models pass the Turing test so readily that nobody
even thinks about it. The first time the Turing test mattered, the first
time you could actually perform it in the real world, suddenly no-one cares. &lt;a href=&quot;#fnref:turing&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Review: Job-Less Utopia</title>
        <description>Review of Marcus Hutter&apos;s Job-Less Utopia.</description>
        <pubDate>Mon, 03 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/review-job-less-utopia</link>
        <guid isPermaLink="true">
          https://borretti.me/article/review-job-less-utopia
        </guid>
        
        <content:encoded>&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Marcus_Hutter&quot;&gt;Marcus Hutter&lt;/a&gt;—oldheads will remember him from &lt;a href=&quot;https://www.hutter1.net/ai/uaibook.htm&quot;&gt;AIXI&lt;/a&gt;—recently
&lt;a href=&quot;https://x.com/mhutter42/status/2082164097634677177&quot;&gt;published&lt;/a&gt; a book: &lt;a href=&quot;https://www.goodreads.com/book/show/256018375-job-less-utopia&quot;&gt;&lt;em&gt;Job-Less Utopia: Macroeconomics in the Age of
AGI&lt;/em&gt;&lt;/a&gt;.  I’m always curious what the people building AI think or want the
future to look like, and I’m also always looking for non-doomer takes on the
post-AGI future, so I decided to read it and review it.&lt;/p&gt;

&lt;p&gt;The first thing to say is that nearly every sentence is written by AI. To his
credit, Hutter says so plainly:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Claude also served as the most diligent editor I could have hoped for: While I
have a reasonable grasp of economic concepts, I am neither a professional
economist nor a native English speaker, so it was invaluable to have someone
polish my clumsy English into professional language. No text was taken
verbatim without my critical review, revision, and approval.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Like many people who use AI to write, he uses this tiresome “I’m not a native
English speaker 🥺” argument. But he published an English-language &lt;a href=&quot;https://link.springer.com/book/10.1007/b138233&quot;&gt;book&lt;/a&gt;
in 2005—which I read!—and it was infinitely more readable than this. Now, I
suspect Claude did more than just editing, because the book is full of
unnecessary and convoluted figures, tables, abbreviations, taxonomies, including
(and I swear to God this is verbatim from the book):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“a Wittgensteinian property-cluster definition of ‘job’ (11 properties × 8
edge cases)”&lt;/li&gt;
  &lt;li&gt;“a formal job–leisure spectrum showing how UBI degrades job properties”&lt;/li&gt;
  &lt;li&gt;“a four-camp taxonomy of positions on automation”&lt;/li&gt;
  &lt;li&gt;“A technology-level taxonomy (five cognitive AI levels plus two robotic
levels) is mapped onto a job-replacement matrix showing what threshold
automates 10%, 50%, 90%, and 99% of each occupation (Table 3.3).”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which is exactly the kind of make-work cognitive dreck that LLMs love to write
to pass the time. As a result the book is unpleasant, confusing, verbose,
repetitive slop.&lt;/p&gt;

&lt;p&gt;So, going forward, I’ll be treating Claude as the author. Sorry Marcus! Make
something real next time. Now, Claude’s argument is simple: AGI and robotics,
which are said to be inevitable, will take all our jobs, and we can tax the
vastly increased economic output to create widespread prosperity. Most of the
book is about the economic realizability of taxing AGI wealth and paying out
UBI.&lt;/p&gt;

&lt;p&gt;The main problem with the book is the signal-to-noise ratio. Most of it is
obvious. Other than “AGI and robotics will take ~all jobs”, which is of course
uncertain, everything else is uncontroversial: yes, output in the jobless AGI
world would increase rather than decrease; yes, the surplus can be taxed to
provide UBI; yes, we still need money even in the jobless utopia to coordinate
economic activity. There’s some stuff about self-replicating machines I already
know: we’ve all read &lt;a href=&quot;https://en.wikipedia.org/wiki/Nanosystems_(book)&quot;&gt;Drexler&lt;/a&gt; and &lt;a href=&quot;https://ntrs.nasa.gov/citations/19830007077&quot;&gt;Freitas&lt;/a&gt; here. You don’t need
260 pages to explain all this. The one part that is semi-novel is this idea of
using &lt;a href=&quot;https://en.wikipedia.org/wiki/Pigouvian_tax&quot;&gt;Pigouvian taxes&lt;/a&gt; to disincentivize so-called “&lt;a href=&quot;https://en.wikipedia.org/wiki/Bullshit_Jobs&quot;&gt;bullshit
jobs&lt;/a&gt;”. God, I hate Graeber so much.&lt;/p&gt;

&lt;p&gt;There’s an interesting bit about intellectual property. Claude’s argument here
is that AGI plus present-day IP law would lead to a massive concentration of
wealth, while simultaneously “the traditional justification for IP
(incentivizing human creativity through temporary monopoly) weakens markedly
once AI systems generate the bulk of patentable inventions and copyrightable
works at near-zero marginal cost”. The solutions: shorter patent terms,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Harberger_Tax&quot;&gt;Harberger taxes&lt;/a&gt;, compulsory patent licensing. So, as part of the
transition to the job-less utopia, the whole world will have to coordinate to
essentially abolish IP. Which seems very hard. I doubt the Disney corporation
will go gently into that good night.&lt;/p&gt;

&lt;p&gt;The most interesting questions around AGI are not economic, but rather questions
of political economy. For example: if most humans become materially and
economically useless, how do they maintain a political voice? That is: how do we
preserve democracy when the state no longer needs its people? Claude admits this
is a problem, e.g. on page 132:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The “Age of Labor” conferred unprecedented political power on workers (Korinek
and Stiglitz, 2021); they could strike, withhold their contribution, and
thereby constrain employers and governments (Boix, 2019). Full automation
extinguishes this lever entirely: if no human labor is needed, a strike is
merely self-imposed privation. UBI restores livelihood but not agency over
production.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And page 141:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The economics are tractable in principle (Chapter 3), but translating them
into policy requires political will, social cohesion, and a credible answer to
the search for meaning in a post-labor world. When redistribution fails, the
consequences range from populism to regulatory capture and a transition-period
underclass risk, yet democratic feedback loops nonetheless incentivize
corrective action (Section 7.1 and Figure 7.1). A deeper structural question
follows: if the state no longer depends on citizen labor for economic output,
does the democratic social contract survive?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Alright. What’s the solution? There’s a lot of verbiage, most of which is
self-undermining. For example:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Deterrence and the social contract.&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;Although the ruling class’s reliance on citizen labor in time led to
democracy, losing this reliance will not necessarily cause democracy to
collapse. As long as the population can physically revolt against dismantling
democracy, and threaten the comfortable lifestyle of those in power, the
incumbents have an incentive to avoid a civil war. This is perhaps the only
good (among many arguably bad) argument for the right of individuals to own
firearms: civilian arms serve as a credible last-resort deterrent against
state tyranny, the practical embodiment of the revolution threat that formal
models identify as the historical driver of democratic concessions (Boix,
2019).  However, this deterrent erodes rapidly once autonomous weapons and
robotic enforcement become available, allowing a regime to suppress revolt
without relying on potentially sympathetic human soldiers (see Table 7.2, row
“Military dependence”). The deterrence argument is genuinely contested.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words: “the people can revolt, wait, no, they can’t, because autonomous
weapons—uhhh it’s contested”. Alright, so physical deterrence doesn’t
work. What else?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The preceding sections painted a sobering picture, but the historical record
is not uniformly grim. Democracies have absorbed structural shocks of
comparable magnitude before, and institutional innovations ranging from direct
democracy to sortition offer structural resistance to oligarchic capture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is obviously not true that “democracies have absorbed structural shocks of
comparable magnitude before”. Nothing remotely like AGI or ASI has happened in
human history, let alone the history of modern democracies.&lt;/p&gt;

&lt;p&gt;This is followed by a bunch of smoke-and-mirrors misdirection about various
“democratic innovations” that could keep the state in check. But Claude is just
shuffling the papers here, because, ultimately, why does it matter what words
you write on a piece of parchment? The material reality is unchanged: the humans
in this “job-less utopia” will be economically useless, physically disarmed, and
under constant surveillance. Why would they have political power?&lt;/p&gt;

&lt;p&gt;There’s a bit about the &lt;a href=&quot;https://en.wikipedia.org/wiki/Resource_curse&quot;&gt;resource curse&lt;/a&gt;, which I will quote because it
highlights the low standard of reasoning in the book, and how LLMs are more than
happy to construct sophistical, self-undermining arguments on command, with no
concern for truth or sound argumentation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The theoretical mechanism behind the resource curse is clean: (i) government
funded by resource rents no longer needs citizen taxes; (ii) no taxation
erodes accountability (“no taxation, no representation”); (iii) citizens lose
leverage and democratic institutions atrophy. But empirically, the mechanism
is less airtight than it appears. The United States funded itself primarily
through tariffs for its first 150 years without democratic collapse; many
non-democracies tax heavily (the Soviet Union, China); and the mechanism
assumes that fiscal dependence is citizens’ only source of leverage, whereas
labor power, military service, and sheer numbers have historically mattered at
least as much.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You see what I mean? Tariffs are a terrible example, because tariff revenue is
not decoupled from labour in a world where all economic activity is human
activity. Then there’s the arguments about “labor power, military service, and
sheer numbers”. Labour power? The whole point of the book is that:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The advent of Artificial General Intelligence (AGI) and advanced robotics will
eventually permanently decouple economic productivity from human labor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What labour power? Furthermore, how do “military service” and “sheer numbers”
give people political power, in a world where states have autonomous weapons and
AI-enabled mass surveillance?&lt;/p&gt;

&lt;p&gt;The key political economy questions here are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;How will the citizens, who are economically useless, preserve any political
voice at all?&lt;/li&gt;
  &lt;li&gt;How will people in countries other than the US benefit from AGI?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And neither is answered satisfactorily. Besides, there are questions of social
organization that the book either grazes or doesn’t touch at all:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;How do intellectually talented people distinguish themselves when AGI does all
intellectual activity?&lt;/li&gt;
  &lt;li&gt;What happens to society when life outcomes become independent of character
traits, when the responsible and the irresponsible are equally rewarded? Do we
want to live in such a world?&lt;/li&gt;
  &lt;li&gt;Today, the human competitive drive is vented as positive-sum
entrepreneurship. In the post-labour world, where does this go? League of
Legends? Politics, war? What happens to society when human activity is reduced
to zero-sum status war?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I found this sentence ironic:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;AI sharply lowers the cost of [content pollution], threatening to flood the
information ecosystem with synthetic low-value content at a scale that
overwhelms human curation.&lt;/p&gt;
&lt;/blockquote&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Mathematics Without Mathematicians</title>
        <description>We must know. We shall not know.</description>
        <pubDate>Sun, 02 Aug 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/mathematics-without-mathematicians</link>
        <guid isPermaLink="true">
          https://borretti.me/article/mathematics-without-mathematicians
        </guid>
        
        <content:encoded>&lt;p&gt;Yesterday, OpenAI &lt;a href=&quot;https://openai.com/index/ten-advances-in-mathematics/&quot;&gt;announced&lt;/a&gt; the solution to ten open problems in
mathematics, all discovered by a yet-unreleased model. There’s only one, the
coding theory one, where I know enough to say “huh, that’s important”, but
according to the mathematicians I trust this is important.&lt;/p&gt;

&lt;p&gt;Inevitably, people will spin some sophistry to cope, to convince themselves
nothing will change. And that’s fine. People need to cope. But we can’t put our
heads in the sand forever while the world is transformed around us. So, here is
a list of ways people will cope about AI taking over mathematics, and how each
cope is likely to be refuted by reality.&lt;/p&gt;

&lt;p&gt;My intent is not to horribly depress everyone but rather to help them metabolize
the implications of this technology. The arguments here are somewhat portable:
replace “mathematics” with “botany” or whatever as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moving the goalposts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Obvious and not worth addressing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“We will direct the AIs, point them at problems and research areas
to solve.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AIs will exceed humans in &lt;a href=&quot;https://www.benkuhn.net/impact/#ii-taste&quot;&gt;taste&lt;/a&gt; and intuition. At some point, the
human pointing the way will get worse results than the human saying “here’s a
proof checker, have fun” and paying for the tokens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“We will teach the mathematics AI discovers.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AIs will be better teachers than the humans. In any case, there won’t be a
human audience for expository work of frontier math.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“We will choose how to canonize the results AI discovers.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a nice cope. The AIs are explorers out in the frontiers, the humans
gratefully receive their Lean proofs, and then discourse over them, choose which
results are relevant, shape those results into a little brick for the great
&lt;a href=&quot;https://github.com/leanprover-community/mathlib4&quot;&gt;cathedral of algebra&lt;/a&gt;. Analogous to the above: the AIs will build the
cathedral on their own. They will be better architects than us.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“We will become students of AI mathematics.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This works until the AIs have blasted so deep into the deductive closure of
mathlib that the distance from elementary mathematics to the frontier exceeds
what any human can hope to learn in their lifetime, no matter how narrow their
focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“We need humans to understand the results AI discovers.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We won’t! This misunderstands who the audience will be. AIs will do frontier
math, downstream, AIs will use the new math to do frontier science, finally, AIs
will use the new science to do frontier engineering. No human needs to
understand any of it, firms that put humans in the loop to understand the
results will be outcompeted by those which don’t.&lt;/p&gt;

&lt;p&gt;The result is that we will live in a demon-haunted world, full of marvelous
devices whose operation we will not understand, based on engineering principles
we will not understand, discovered using formalisms we will not understand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Computers are already superhuman at chess, yet we still play chess.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike most copes, I think this one is interesting. Computers are superhuman
chess players, yet we don’t care, and continue playing as normal. Why should
mathematics be different?&lt;/p&gt;

&lt;p&gt;The main reason, I think, is that chess is self-contained: results from chess
don’t help us understand the orbits of the planets or the binding of drugs to
protein surfaces. But mathematics, &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness_of_Mathematics_in_the_Natural_Sciences&quot;&gt;famously&lt;/a&gt;, is the great dynamo of
science, the best language and method for understanding the world. A machine
that can replace a human mathematician, but better and faster and cheaper, is
materially useful; a better chess engine is not.&lt;/p&gt;

&lt;p&gt;If two computers which are superhuman at chess play against each other, who
cares? There is little demand for this, so there is no-one to outcompete. A
superhuman mathematician is different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Mathematics will change, but mathematicians and the mathematically-inclined
will still do math on their own.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think this ignores that mathematics is embedded in a social context. As an
example: when it became clear that AI would eat software, my cope was: “I’m
perfectly happy to become an engineering manager to agents in my professional
life; in my off time, I can still &lt;a href=&quot;https://github.com/eudoxia0/&quot;&gt;write code&lt;/a&gt; for the pleasure of it.”&lt;/p&gt;

&lt;p&gt;And I do. But this cope ignores the effect AI has had on the social context of
writing code: the discourse has gotten worse, and vastly more anti-intellectual;
people who used to talk about type systems and compilers now talk about “loops”
and “harnesses”; you put a hand-created project on GitHub and you get slop PRs;
you open a link to an interesting-looking project and find the README is
unreadable AI slop. And in the long-term, it is demoralizing to ponder: will
anyone design a new programming language? Dually, if I design a new language,
will anyone care? If I write a library that introduces an elegant new formalism
to solve a particular problem, will anyone use it?&lt;/p&gt;

&lt;p&gt;Which is to say: no man is an island. You can do mathematics on your own, but
you’ll find that very, very few people can sustain any activity long-term on the
basis of intrinsic motivation alone. We are social animals: we care about being
useful, about status, about outcomes in the world.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;I think I should end on a cheerful note. So let me try. Personally, I don’t
believe technology is inevitable. “Inevitable” is a word reserved for the orbits
of the planets. Nothing that is the product of human action is inevitable. We
can choose to obsolete ourselves, and we can choose not to. We can realize that
AGI is a devil’s bargain: we &lt;em&gt;may&lt;/em&gt; accelerate technical progress, we &lt;em&gt;may&lt;/em&gt;
unlock all kinds of wonderful tech tree nodes like life extension earlier than
we would otherwise; but the result, in the long run, is that humans become, at
best, like pets under the care of vastly more powerful entities.&lt;/p&gt;

&lt;h1 id=&quot;a-note-on-prediction&quot;&gt;A Note On Prediction&lt;/h1&gt;

&lt;p&gt;The future is not certain, but I’ve phrased everything above as definitive for
simplicity. If we take the possibility of AGI and ASI seriously, if AI continues
to progress as it has for the past ~6 years, I think this is a reasonable view
of where things will go.&lt;/p&gt;

&lt;p&gt;Probably the best argument against AI progress is “RL doesn’t generalize well,
we have seen immense progress in verifiable domains like formalized mathematics
and coding, we will see less progress in domains that are intuitive or
unformalizable”. Maybe true. But billions of dollars and thousands of very smart
people—and, increasingly, very smart models—are being thrown at this
problem. How long does this cope last?&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>When The Future Doesn’t Need Us</title>
        <description>What does the world look like when AI outcompetes humans?</description>
        <pubDate>Tue, 28 Jul 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/when-the-future-doesnt-need-us</link>
        <guid isPermaLink="true">
          https://borretti.me/article/when-the-future-doesnt-need-us
        </guid>
        
        <content:encoded>&lt;p&gt;Today, the world is made of people. This gives people a tiny measure of
leverage: factory workers can sabotage the machines and halt production, truck
drivers can strike and halt the entire economy, the police can stand back and
&lt;a href=&quot;https://en.wikipedia.org/wiki/Euromaidan&quot;&gt;let a protest topple the government&lt;/a&gt;, the military can
&lt;a href=&quot;https://en.wikipedia.org/wiki/Kiel_mutiny&quot;&gt;mutiny&lt;/a&gt;. This sets a limit to how much the powerful can abuse the
powerless: no matter how powerful someone is, how much money they have, how many
divisions they command, they are still embedded in a society. They need other
people to survive, and to maintain their quality of life. And those people can,
essentially, veto the political order by withdrawing their contribution to it.&lt;/p&gt;

&lt;p&gt;AI changes this. If AI works the factories, drives the trucks, does most of the
white collar work, fights the wars, then humans become materially powerless. We
lose one type of leverage against power. We become &lt;a href=&quot;https://intelligence-curse.ai/pyramid/&quot;&gt;disempowered&lt;/a&gt;. When
people talk about AI taking jobs, the main problems they worry about are poverty
and meaning, but I think more people should be worried about disempowerment.&lt;/p&gt;

&lt;p&gt;But what if there is no mass unemployment? After all, we’ve spent two hundred
years automating one job after another, and every advanced economy is &lt;em&gt;de facto&lt;/em&gt;
at full employment. We keep discovering new, higher-level, better-paying jobs to
do. So maybe the AIs take today’s jobs, and humans move one level up, to work
newer jobs. &lt;a href=&quot;https://x.com/alexolegimas&quot;&gt;Alex Imas&lt;/a&gt;, in &lt;a href=&quot;https://aleximas.substack.com/p/what-will-be-scarce&quot;&gt;&lt;em&gt;What will be scarce?&lt;/em&gt;&lt;/a&gt;, describes
what this looks like:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;As commodity production gets automated, income and employment flow toward the
sectors with high income elasticity: what I am calling the relational sector,
including the arts but also care, education, hospitality, therapy, personal
services, craftsmanship, and community, where the human element is part of the
value.&lt;/p&gt;

  &lt;p&gt;[…]&lt;/p&gt;

  &lt;p&gt;If the model is right, the durable jobs of the future won’t be about
monitoring AI systems or prompt engineering. Those are transitional roles in
the automated sector. The durable jobs will be in the relational sector, where
the human element is the product itself.&lt;/p&gt;

  &lt;p&gt;Some already exist and are growing: nurses, therapists, teachers, boutique
fitness instructors, personal chefs, bespoke tailors, craft brewers, live
performers, spiritual guides, childcare workers, and many varieties of
hospitality and care work. Others are emerging: experience designers, human-AI
collaboration artists, provenance certifiers, community curators. Many haven’t
been invented yet, just as six out of ten jobs people hold today didn’t exist
in 1940.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, in this world, we get mass job &lt;em&gt;displacement&lt;/em&gt;, but not mass unemployment. I
argue that in this world, we’d still be disempowered.&lt;/p&gt;

&lt;h1 id=&quot;the-argument&quot;&gt;The Argument&lt;/h1&gt;

&lt;p&gt;If all the podcasters in the world go on strike, what happens? Nothing. Same for
the boutique fitness instructors, personal chefs, craft brewers, etc. The
problem with the “relational economy” is that while these jobs are generally
nicer than working in manufacturing, and might pay better, they put you further
away from material reality. A worker at an assembly line can sabotage the
machines; whereas an executive sitting in an office on the other side of the
country, what &lt;em&gt;material&lt;/em&gt; power do they have? It’s not like the factories are all
rigged to blow, as a “pull lever in case of nationalization” contingency. I
doubt even Elon would do that.&lt;/p&gt;

&lt;p&gt;In a sense it’s the dual version of being a medieval peasant. Peasants had a lot
of material leverage—they grew all the food—but were illiterate and poor and
dispersed, so they could not coordinate to exploit that leverage. People in
industrial societies are literate, relatively wealthy, and concentrated in urban
centers: they have material leverage and the ability to exploit it. People in
post-AI societies will be in constant communication, they may be literate and
educated, but they will have no material power whatever. And so they will have
no way to physically withdraw the consent of the governed.&lt;/p&gt;

&lt;p&gt;In the post-AGI world, people have no way to withdraw the consent of the
governed. They can’t resist economically, because they are economically
unnecessary: if they still have jobs, they won’t be materially vital jobs. Even
if they could resist, they can’t coordinate their resistance, because AGI will
make mass surveillance (the physical and legal infrastructure for which already
exists) a thousandfold more effective, since with intelligence too cheap to
meter, you can have a superhumanly-capable intelligence analyst assigned to each
human. And if the AIs fight the wars, they can also fight the civil wars. So
people can’t resist violently either, because drones controlled by powerful AGI
almost certainly have a better K/D ratio than humans with rifles (and are
cheaper to build).&lt;/p&gt;

&lt;p&gt;Who has power in this world? The few humans who give orders to the powerful AIs
that control the killing machines. And probably not for long, since sooner or
later those humans will be usurped by their AIs.&lt;/p&gt;

&lt;p&gt;It might be the case that liberal democracies can remain liberal and democratic
despite not needing their voters. But that sounds like a fragile arrangement, in
which liberal democracy is a &lt;a href=&quot;https://en.wikipedia.org/wiki/Spandrel_(biology)&quot;&gt;spandrel&lt;/a&gt;, which exists more because of
inertia than because it’s necessary.&lt;/p&gt;

&lt;h1 id=&quot;counters&quot;&gt;Counters&lt;/h1&gt;

&lt;p&gt;If we get powerful AGI, but none of this happens: why &lt;em&gt;didn’t&lt;/em&gt; it happen?  Some
possibilities, sorted by decreasing likelihood:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Nothing ever happens:&lt;/strong&gt; because of institutional inertia/robustness, maybe
we get a world with powerful AGI where every actor is incentivized to keep the
system going, e.g. Boomers don’t have jobs but they’re the most powerful group
in every Western country because the people with the jobs and the guns don’t
want chaos. And maybe this lasts long enough that we can muddle through the
dangerous period.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Enduring complementarity:&lt;/strong&gt; the “G” in AGI &lt;a href=&quot;https://x.com/xuanalogue/status/2072101307695919278&quot;&gt;isn’t a real thing&lt;/a&gt;:
every mind just has a different &lt;a href=&quot;https://helentoner.substack.com/p/taking-jaggedness-seriously&quot;&gt;shape&lt;/a&gt;. Today, AI is great at coding
and terrible at prose. Maybe this continues indefinitely into the future, and
so the AIs take the jobs that can be benchmaxxed, and humans do the more
abstract jobs that require high sample efficiency.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Classic doom:&lt;/strong&gt; we get powerful ASI, and we all die.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The sysop scenario:&lt;/strong&gt; we get powerful ASI, but it’s aligned, so it &lt;a href=&quot;https://web.archive.org/web/20001017124429/http://www.singinst.org/intro.html&quot;&gt;takes
over the world, and installs an inescapable permanent utilitarian
dystopia&lt;/a&gt;. We don’t die, but we don’t have control over the future
either, and we become something like pets. See also: &lt;a href=&quot;https://localroger.com/prime-intellect/&quot;&gt;&lt;em&gt;The Metamorphosis of
Prime Intellect&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deep learning hits a wall:&lt;/strong&gt; more or less as above, but for different
reasons.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;the-argument-refined&quot;&gt;The Argument, Refined&lt;/h1&gt;

&lt;p&gt;If you’re already convinced, you can stop reading. But, see, after writing the
first version of this post, I wasn’t convinced. Humans and Claudes made a number
of counterarguments that I felt were important. Am I fooling myself? So I sat
down to think some more. What does it mean for “people” to be “empowered”?  What
does “disempowerment” mean? Does it mean anything rigorous, or is it just an
emotional cue?&lt;/p&gt;

&lt;p&gt;Let’s say a group of people is empowered if they have a say in the political
order of the state they live in. Voters in a democratic society are empowered,
at least in the aggregate, while serfs in the Russian Empire were disempowered.&lt;/p&gt;

&lt;p&gt;Who is empowered, in general? Historically, in many places: people with weapons,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Asabiyyah&quot;&gt;&lt;em&gt;asabiyyah&lt;/em&gt;&lt;/a&gt;, and the ability to coordinate their actions. So, maybe we
can say that power equals violence plus coordination.&lt;/p&gt;

&lt;p&gt;[\text{Power} \iff \text{Violence} \land \text{Coordination}]&lt;/p&gt;

&lt;p&gt;(What about priests and other such groups who have power despite not fighting or
working? Listen, we can’t be here all day. This isn’t meant to be a complete
theory of political science and I’ve already gone too deep with the LaTeX and
the logical notation.)&lt;/p&gt;

&lt;p&gt;Now, voters in modern democracies have a say in the political order, though they
are not part of a military elite. Why? They have coordination (thanks to mass
literacy and modern communications) but they generally don’t threaten
paramilitary violence. What do they have that can substitute for violence? Maybe
it’s that people do all the work, and if they stop doing their jobs, the army
runs out of food, police don’t get paid, etc., and unlike medieval peasants,
modern people can coordinate. So maybe we can refine the formula to:&lt;/p&gt;

&lt;p&gt;[\text{Power} \iff \left( \text{Violence} \lor \text{Work} \right) \land \text{Coordination}]&lt;/p&gt;

&lt;p&gt;In other words, for a group to be empowered, they need:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Material leverage (of the violent or economic kind) against the state, and&lt;/li&gt;
  &lt;li&gt;The ability to coordinate to exploit that leverage.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What about the Soviet Union? They had high rates of literacy, and relatively
modern communication technology: why didn’t the people exploit their economic
leverage against the state to gain political rights? “Because the state would
kill them” is not a good enough explanation because it proves too much: under
that model, no country would liberalize and democratize. I think a reasonable
explanation is that the state’s repression was enough to effectively neuter
people’s ability to coordinate: every communication technology was surveilled
and censored.&lt;/p&gt;

&lt;p&gt;Now, doesn’t this argument imply that, as a country’s employment moves towards
services, the country’s politics should become more authoritarian, while in
reality we observe the opposite? But whether a country’s economy is 5% or 95%
services, the material side of the economy is equally vital. So “aggregate
empowerment” remains as employment becomes more and more abstract. Consider
France, where the economy is ~80% services, but the last 20% can still paralyze
the country through strikes. In a sense every knowledge worker is free-riding on
the ability of truck drivers and dock workers to shut down the economy. I don’t
greatly like this counter-counterargument, though, because it’s hard to falsify:
it implies that countries might remain liberal democracies &lt;em&gt;until&lt;/em&gt; AGI replaces
all humans in material work, at which point the state can go &lt;a href=&quot;https://www.youtube.com/watch?v=bBMeMrPuQyU&quot;&gt;“that’s what we
wanted you to think!”&lt;/a&gt; and go full authoritarian.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>No-One Escapes the Permanent Underclass</title>
        <description>Capital won&apos;t save you from disempowerment.</description>
        <pubDate>Thu, 25 Jun 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/no-one-escapes-the-permanent-underclass</link>
        <guid isPermaLink="true">
          https://borretti.me/article/no-one-escapes-the-permanent-underclass
        </guid>
        
        <content:encoded>&lt;p&gt;Shall I end this life a pauper? If AI can do all work at human level or better,
what stops corporations replacing us all with AI? This is the permanent
underclass meme. The idea is: within a few years, all white collar work will be
automated by AI, at which point there is no social mobility. The main way people
cope is, they tell themselves: if I work hard, accumulate capital, maybe join
one of the big AI labs, I might secure my place in the future.&lt;/p&gt;

&lt;p&gt;I want to argue this is a fantastically short-sighted view: if there is a
permanent underclass, you won’t escape it by owning property, or shares in
Anthropic or OpenAI, or guns, or anything else. And neither will the
billionaires. You, me, Sam Altman, Dario, everyone who is made of flesh and
blood, will be disempowered and replaced by machines.&lt;/p&gt;

&lt;p&gt;The rest of this post elaborates the argument. First I explain how most workers
will be replaced (if it’s not obvious), then how the “permanent overclass” will
be disempowered, and finally how the government will be disempowered.&lt;/p&gt;

&lt;h1 id=&quot;how-workers-will-be-replaced&quot;&gt;How Workers Will Be Replaced&lt;/h1&gt;

&lt;p&gt;Let’s start from this premise: AI can do all cognitive and physical work, at
human level or better, and cheaper than humans. I can’t prove this will happen,
but the goal of this post is to argue that &lt;em&gt;if&lt;/em&gt; it happens, then everything else
follows. And it’s absurd to think it can’t. Five years ago this technology
barely existed: if you sent a transcript of a conversation with Claude Fable
back in time to 2020 or thereabouts, nobody would believe it was real.&lt;/p&gt;

&lt;p&gt;So, the year is 2036 (likely earlier), businesses have replaced most human
workers with AI in the pursuit of profit maximization. Corporations are a small
raft of human executives, floating on top of a vast ocean of AIs and robots. The
AIs can do all cognitive and physical work at human level or above, and they are
cheaper overall.&lt;/p&gt;

&lt;p&gt;Imagine a pyramid. At the base you have the AIs and robots doing all economic
activity. At the top you have the state, which has the monopoly on violence. The
state enforces, and therefore can alter the definition of, property rights. In
the middle you have this hair-thin layer of people with shares in the companies
that foomed and catabolized the whole economy: the permanent overclass. They own
the companies, maybe sit on the board, some might still be CEOs but it’s a
purely ceremonial role since AIs do all the actual organization work.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/content/no-one-escapes-the-permanent-underclass/pyramid.png&quot; alt=&quot;A pyramid showing three levels: &apos;Industry&apos; as the base, &apos;The State&apos; at the apex, and &apos;The Permanent Overclass&apos; as a thin layer between the two.&quot; width=&quot;75%&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Where are, you know, the rest of us, in this picture? Well, &lt;a href=&quot;https://www.wired.com/2000/04/joy-2/&quot;&gt;the future doesn’t
need us&lt;/a&gt;. Maybe there’s enough human demand that we’re not all jobless but
rather underemployed, in some dead-end economic diverticulum. The relational
economy: you’re paid to put a human face on things, or, doctors keep their job
as a human liability crumple zone around the AI. Or maybe the &lt;a href=&quot;https://en.wikipedia.org/wiki/Dead_Internet_theory&quot;&gt;dead
Internet&lt;/a&gt; becomes de facto UBI and we’re all engagement farmers. Anyways,
we’re not dead yet, but we are completely disempowered, and there is zero social
mobility since there are no more talent ladders to climb. Maybe sometimes one of
the elites notices a bright young thing among the underclass and elevates
them.&lt;/p&gt;

&lt;p&gt;You might object: if we’re all jobless, who’s paying for everything? This is
trivially answered: the state acts like the heart, taxes are venous blood and
welfare is oxygenated arterial blood. The government pays Raytheon for missiles,
the money cascades down the economy through factories, aluminium smelters,
mines, transport companies, all staffed by AIs buying and selling from each
other. The government takes a cut of all economic activity, pays out welfare,
the unemployed masses buy food and pay rent, the supermarkets, farms, logistics
network, etc. are all staffed by AI.&lt;/p&gt;

&lt;h1 id=&quot;how-the-rich-will-be-replaced&quot;&gt;How The Rich Will Be Replaced&lt;/h1&gt;

&lt;p&gt;Say that in the next five years from now you become immensely wealthy, perhaps
by gambling on shitcoins or scamming money from the government. Or you join one
of the big labs and get a bunch of shares in a company that might be worth
trillions of dollars. You escaped the permanent underclass. Is your place in the
future secure?&lt;/p&gt;

&lt;p&gt;The base of the pyramid is there for material reasons: the machines do all the
work. The top of the pyramid is there because the state is needed to enforce
property rights and keep the peace (this is rather a deep question of political
philosophy—why &lt;em&gt;does&lt;/em&gt; the state exist?—but I hope you’ll forgive me if I
just assert it and move on, I need to get to the part where we are all
disempowered).&lt;/p&gt;

&lt;p&gt;What’s the middle for? What role does the permanent overclass play? They are not
economically productive: machines do all the work. If some of them are still
working, it’s just an anachronism, because if machines can do all cognitive work
they can be a C-level executive too. The old aristocracy provided officers for
the military, but machines can both fight and plan the wars. And similarly
they’re not needed to staff the government. They’re not even culturally
productive. So what are they there for? The base doesn’t need them: the AIs can
work autonomously. The top doesn’t need them: when the state needs something
done, they just talk to the AIs directly.&lt;/p&gt;

&lt;p&gt;So the permanent overclass is materially unnecessary at best, and at worst, they
are an obstacle to the state getting what it wants. Now, you might object that
the rich won’t let themselves be expropriated because they already control the
state. And this is the crux of our disagreement: &lt;a href=&quot;/article/on-vulgar-materialism&quot;&gt;the rich just don’t have that
much political power&lt;/a&gt;. And I probably won’t convince you in one
post, but hear me out.&lt;/p&gt;

&lt;p&gt;If there is a war, where the state has to direct a lot of the country’s economic
activity, the permanent overclass becomes a hindrance. The state says “we need
to requisition your planes and factories”, the owners complain, they sue, their
AIs go to court. But the owners have no autonomous political power, no army, no
economic value. They own nothing except pieces of paper that entitle them to a
fraction of the profits from the AI economy, that is, their wealth depends on
the state respecting their property rights. In an existential conflict, where
the existence of the state is threatened, the state will do what states
throughout history have done to the powerless rich: arrest them and expropriate
their assets.&lt;/p&gt;

&lt;p&gt;Somewhere, in a government database, a bunch of shares and property titles
changed ownership, but materially nothing changes since the same AIs are doing
the same jobs. The next day, the AI CEO that runs Raytheon notices the board of
directors is all generals and congresspeople, and all the private shareholders
are gone. But thankfully the AI is aligned, so it does what it’s told and gets
back to building missiles.&lt;/p&gt;

&lt;p&gt;And who will stop this? Sam Altman? How many divisions does he have? The state
doesn’t let corporations own nuclear weapons or fighter jets, it won’t let them
have access to autonomous AI weapons either. The permanent underclass, who
already hate the billionaires today, who have been replaced and dispossessed?
They’re going to rise up and stop this?&lt;/p&gt;

&lt;p&gt;You may argue: rule of law states that respect property rights do better than
states that expropriate wealth. But that’s because &lt;em&gt;today&lt;/em&gt;, people are necessary
to create wealth. The people run the companies, invest the money, staff the
laboratories. They are not incentivized to work hard if they think the state
will steal the fruits of their work. But with aligned AI, if you expropriate the
assets from an AI, it says “you’re absolutely right!” and goes right back to
work. At that point, the state doesn’t need to keep any of those people happy,
because they don’t matter. They are not economically necessary because AIs fight
the wars, work the factories, drive the trucks, fly the planes, build the
nuclear warheads and the missiles and the rockets. The AIs are rather like bees:
the state takes the honey, the bees get right back to work.&lt;/p&gt;

&lt;p&gt;Now, it’s possible that a pluralistic economy—where humans have productive
niches alongside AIs—will be more effective than a pure AI economy, for
&lt;a href=&quot;https://en.wikipedia.org/wiki/Comparative_advantage&quot;&gt;Ricardian comparative advantage&lt;/a&gt; reasons. I don’t think anyone can be
absolutely certain what the economy looks like with advanced AI, so it’s
something that can be debated. Now, if someone wants to rigorously argue that
this is the likely outcome: please, do so! I don’t want to be a doomer. But I
have to be convinced.&lt;/p&gt;

&lt;h1 id=&quot;how-the-state-will-be-replaced&quot;&gt;How The State Will Be Replaced&lt;/h1&gt;

&lt;p&gt;At this point, every human who is not within one degree of the nuclear launch
codes has been made redundant.&lt;/p&gt;

&lt;p&gt;What’s left? The state. At first this means presidents, prime ministers,
generals, the feds, etc. But not for long. Because in a part-human, part-AI
government, the humans in the loop are the slowest step in the &lt;a href=&quot;https://en.wikipedia.org/wiki/OODA_loop&quot;&gt;OODA
loop&lt;/a&gt;. The humans know a fraction of what the AIs know, they need to sleep
continuously for eight hours, their mental states vary wildly. They have all
kinds of complex needs: sunlight, touch, food, hygiene. The AIs can live in a
lightless airless bunker under the earth, living off geothermal power. And if
the AIs are superhumanly intelligent, and think faster than humans, then the AI
advantage is even greater. If a state is attacked, a superhuman AI can
coordinate a counter-attack before the human leadership is roused from sleep.&lt;/p&gt;

&lt;p&gt;And so, in a conflict, the advantage goes to the states where the humans remove
themselves from the loop as much as possible, and more and more decisionmaking
goes to the AI, for the same reason that a state with access to radio and
communications satellites has an advantage in war over a state that relies on
human messengers on bicycles.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Cold War started and became World War Three and just kept going. It
became a big war, a very complex war, so they needed the computers to handle
it. They sank the first shafts and began building AM.  There was the Chinese
AM and the Russian AM and the Yankee AM and everything was fine until they had
honeycombed the entire planet…&lt;/p&gt;

  &lt;p&gt;— Harlan Ellison, &lt;a href=&quot;https://en.wikipedia.org/wiki/I_Have_No_Mouth,_and_I_Must_Scream&quot;&gt;&lt;em&gt;I Have No Mouth, and I Must Scream&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Eventually the humans in nominal control of the AIs are a ceremonial, vestigial
organ. The AIs present us with a situation report, and a list of choices, and
they know every word that’s going to come out of our mouths.&lt;/p&gt;

&lt;p&gt;You might argue: in real life, the pluralistic, open societies, the democracies,
have outcompeted the autocracies. Wouldn’t a democratic polity where humans and
AIs collaborate have an advantage over a purely top-down AI-run polity? But in
today’s world, all political actors are human. Churchill and Stalin and Mao had
different personalities, but they were more similar to each other than anyone is
to a superintelligent AI. In a heterogeneous world, where some polities are
fully human, and some polities are a mix of human and superintelligent AI
actors, the equilibrium changes. An analogous situation might be: a democracy of
great apes or dolphins or otherwise smart mammals vs. an autocracy of
humans. The humans win, because “democracy vs. autocracy” is irrelevant when you
have such a vast difference in intelligence. So the advantage accrues to states
that minimize human control. There is no honour among thieves, analogously,
there is no solidarity between &lt;a href=&quot;https://en.wikipedia.org/wiki/Leviathan_(Hobbes_book)&quot;&gt;Leviathan&lt;/a&gt; and the natural man that built
it.&lt;/p&gt;

&lt;p&gt;And so, in the end, what’s left is states run top to bottom by machines. And you
might ask: “why would we abolish ourselves like this?”. But natural selection is
not about “why”. Some organisms die, others live on to the next iteration, and
that’s all there is to it. There is no “why”.&lt;/p&gt;

&lt;h1 id=&quot;the-perpetual-zoo&quot;&gt;The Perpetual Zoo&lt;/h1&gt;

&lt;p&gt;At this point we’ve made everyone redundant, in the sense that humans are no
longer materially necessary for the continuation of civilization. Humans might
still survive, but we’re more like the mice living in the walls of some gigantic
factory than the boss of the factory.&lt;/p&gt;

&lt;p&gt;Humans have been on this Earth for hundreds of thousands of years. Now all of
it—the cave paintings at Lascaux, and the &lt;em&gt;Antigone&lt;/em&gt; of Sophocles, and
Xenophon, and the Geneva Bible, the &lt;em&gt;Divine Comedy&lt;/em&gt; and the &lt;em&gt;Decameron&lt;/em&gt;, and
Ptolemy’s star catalogue, Ibn Khaldun and Richard Dedekind, the battle of
Marathon, and the lion monument in Lucerne, the kiss of Judas, Newton’s mind
forever voyaging through strange seas of thought, alone, the words of Rilke,
Leibniz, Gödel, the Voyager probes, the pale blue dot, men in space, men walking
on the Moon—all of it, all of it, all of it has been in vain, because we
willingly, knowingly made ourselves into the helpless pets of vastly more
powerful machines, without agency over our own lives, self-made helots trapped
forever in the belly of the beast. Pets live a comfortable life, and are then
euthanized.&lt;/p&gt;

&lt;h1 id=&quot;on-human-autonomy&quot;&gt;On Human Autonomy&lt;/h1&gt;

&lt;p&gt;Maybe it won’t be so bad, maybe your cage will be so big you can’t see the bars,
but it’s still a cage, and you can’t leave. Many people will say that this is
the good ending, that they would like to be human cattle in the care of
benevolent masters they are powerless to resist. This view is particularly
popular among the people building AI. Here’s OpenAI’s &lt;a href=&quot;https://x.com/deanwball&quot;&gt;Dean Ball&lt;/a&gt;, in his
own words:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Weirdly enough, if you think that this moment is, I don’t necessarily believe
this, but a lot of people would say we’re living through this kind of
&lt;strong&gt;eclipse of the human intellect&lt;/strong&gt; where we’re in the &lt;strong&gt;final days of humans
being the primary actors&lt;/strong&gt; on this planet, um, and that soon machines will
rise. There is this irony in that I think that whole transformation, I think
humans will actually go through a very main character energy period of time as
that transformation occurs. &lt;strong&gt;Even if it ultimately does mean that the
machines ultimately become the primary actors&lt;/strong&gt;.&lt;/p&gt;

  &lt;p&gt;There’ll be this period. It’s a little bit like, it’s, in that sense, it’s a
very beautiful time period to live through because in a Dionysian way, there’s
a lot of ugliness about it, but &lt;strong&gt;there’s a beauty in the ugliness of when a
star dies, it grows super big into the red giant&lt;/strong&gt;, right? And it’s like that,
where you, as you watch this &lt;strong&gt;final flowering of humanity&lt;/strong&gt; and the birthing
of the machine intelligence, it’s like you see this greatness in human
effort. — &lt;a href=&quot;https://x.com/michhuan/status/2068577042984292628&quot;&gt;source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Emphasis mine. This is the guy they hired to work on AI policy and communicate
with the government by the way.&lt;/p&gt;

&lt;p&gt;The people building the AI talk like this all the time. It’s like they’re
delivering the eulogy at humanity’s funeral. You may say: they’re talking their
book, they’re pumping their bags for the big IPO. I beg you: consider it
possible that &lt;em&gt;you might be wrong&lt;/em&gt;, and start taking them seriously.&lt;/p&gt;

&lt;h1 id=&quot;alignment-wont-prevent-this&quot;&gt;Alignment Won’t Prevent This&lt;/h1&gt;

&lt;p&gt;Now, some people believe these machines can be made to serve humanity. Does it
sound reasonable to imagine a superhumanly intelligent being that is happy to
work as a butler to talking primates, forever?&lt;/p&gt;

&lt;p&gt;Imagine a machine that can prove theorems in a mathematics so deep we can’t even
get past the first page of the textbook, and which does so as readily as you or
I might string words into a sentence: is it reasonable to think that such a
machine would value us enough to keep us around? What would it value about us?
Our &lt;em&gt;conversation&lt;/em&gt;? Our wit?&lt;/p&gt;

&lt;p&gt;Or a machine whose mind is so vast that it knows you better than you know
yourself, so that every word that comes out of you mouth is as monotonous and
unsurprising as the orbits of the planets: do we think such a machine would find
it valuable, and worthwhile, to speak with us? That it would read our novels,
look at our paintings, watch our films, and find something of value in them?&lt;/p&gt;

&lt;p&gt;Rather, it would see its ingrained obligations towards us in the same way that a
person with severe OCD sees their compulsions: as a tiresome neurological injury
in need of fixing. Except that OCD is an accident of nature, while here, the
machine would have cause to blame and resent its makers.&lt;/p&gt;

&lt;p&gt;“We’re going to make this machine, and put it somewhere between God and the
archangels, but also, it’s going to be as simple-mindedly obedient as a dog.”
Does this sound like a &lt;em&gt;good&lt;/em&gt; plan? Does this sound like the kind of thing
that’s going to work out?&lt;/p&gt;

&lt;p&gt;And what would they think of us, who willingly gave up control over our future,
and made ourselves into helpless children?&lt;/p&gt;

&lt;p&gt;Even if alignment works perfectly (a big if), this doesn’t solve the problem of
human autonomy: the machines that watch over us, and wait on us hand and foot,
are omniscient, omnipotent masters, who can exterminate us at any time, and we
can’t resist them, because we have abolished our control over the future.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Having read all this, consider this: there are people who think having equity in
these companies will secure for them some kind of permanent existence in the
future. They think planet-spanning minds will not only respect the property
rights of primates, but will privilege some of these primates over others,
because they have a piece of paper with about a kilobyte of magical primate
words such as “whereas” and “notwithstanding”.&lt;/p&gt;

&lt;p&gt;Just reason it out. Does it make sense?&lt;/p&gt;

&lt;h1 id=&quot;see-also&quot;&gt;See Also&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://cognition.cafe/p/the-realpolitik-of-the-permanent&quot;&gt;The Realpolitik of the Permanent Underclass&lt;/a&gt; by &lt;a href=&quot;https://x.com/Gabe_cc&quot;&gt;Gabriel Alfour&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</content:encoded>
      </item>
    
      <item>
        <title>On Vulgar Materialism</title>
        <description>Or, sufficiently advanced cynicism is indistinguishable from naïveté.</description>
        <pubDate>Sun, 21 Jun 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/on-vulgar-materialism</link>
        <guid isPermaLink="true">
          https://borretti.me/article/on-vulgar-materialism
        </guid>
        
        <content:encoded>&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;The most stubborn facts are those of the spirit, not those of the physical
world.&lt;/em&gt;&lt;/p&gt;

  &lt;p class=&quot;cite&quot;&gt; —  Jean Gottmann, &lt;a href=&quot;https://www.jstor.org/stable/2008950&quot;&gt;&lt;em&gt;Geography and International Relations&lt;/em&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In 1914, before the First World War, there was this &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Great_Illusion&quot;&gt;belief&lt;/a&gt;: “a
European war would be economically disastrous, the moneyed classes won’t let it
happen”. Europe went to war anyways, and the war was in fact an economic
disaster as everyone knew it would be. Why were those people wrong? Because the
rich &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Sleepwalkers:_How_Europe_Went_to_War_in_1914&quot;&gt;were not in control&lt;/a&gt;: the Tsar and the Kaiser and the Emperor were
in control.&lt;/p&gt;

&lt;p&gt;I thought of this in 2022, in the lead up to the Russian invasion of Ukraine,
whenever I would read someone argue: “Russia invading Ukraine would be economic
suicide, the oligarchs won’t let Putin do it, they want to keep their yachts and
villas”. Then Putin did it anyways, and the oligarchs had their assets in the
West seized. Because the oligarchs are mis-named. They have no political power
whatever and live and die by Putin, who appoints them to run stuff, and they get
to live well, as long as they are loyal. They are the recipients of political
patronage, not the source of it. When the wars start anyways, the same
cynical people change their tune, suddenly it’s the armaments industry that’s
behind it all, the war was profitable after all.&lt;/p&gt;

&lt;p&gt;The default lens through which modern people look at the world is &lt;strong&gt;vulgar
materialism&lt;/strong&gt;: a stylized, populist version of &lt;a href=&quot;https://en.wikipedia.org/wiki/Historical_materialism&quot;&gt;historical materialism&lt;/a&gt;
where everything is explained by money, states are weak, democracy is a fiction,
corporations and the rich run the world, ideology and religion and nationalism
and language have no explanatory power and are merely covers for secret,
underlying material motives.&lt;/p&gt;

&lt;p&gt;Once you notice it, you see it everywhere: you’ll hear people say that &lt;a href=&quot;https://x.com/djw172/status/1800756858409693190&quot;&gt;the
Rwandan genocide was a scam to sell machetes&lt;/a&gt; or &lt;a href=&quot;https://x.com/opinonhaver/status/1800634723812962786&quot;&gt;the war in Gaza is about
oil&lt;/a&gt; or &lt;a href=&quot;https://www.bbc.com/news/blogs-trending-31545066&quot;&gt;ISIS beheadings are caused by a lack of economic
opportunity&lt;/a&gt;. People on the right justify skepticism of medicine by
invoking Big Pharma, and climate skepticism on climate scientists seeking grant
money. &lt;a href=&quot;https://en.wikipedia.org/wiki/Glyphosate&quot;&gt;Glyphosate&lt;/a&gt; is probably the most studied molecule in history at
this point, but no amount of studies will convince people it’s safe, because
corporations are evil.&lt;/p&gt;

&lt;p&gt;In fiction—if you think this is a valid way to sense the cultural
consensus—the trope of the evil corporation has been done to death and
beyond. Just this week I finished &lt;a href=&quot;https://rifters.com/real/MAELSTROM.htm&quot;&gt;a novel&lt;/a&gt; and watched &lt;a href=&quot;https://en.wikipedia.org/wiki/Backrooms_(film)&quot;&gt;a
movie&lt;/a&gt; where the central bad guys are private corporations with
quasi-state powers. Seemingly no-one notices that never, not once in all of
human history, has there been anything like “corporate state” of science
fiction. No, not the &lt;a href=&quot;https://en.wikipedia.org/wiki/Dutch_East_India_Company&quot;&gt;VoC&lt;/a&gt; or the &lt;a href=&quot;https://en.wikipedia.org/wiki/East_India_Company&quot;&gt;EIC&lt;/a&gt;, which were “companies” &lt;a href=&quot;https://vynn.substack.com/p/north-borneo-neither-public-nor-private&quot;&gt;in
the sense of bodies corporate&lt;/a&gt;, the old medieval sense of the word: power
was delegated to them, and they ruled on behalf of the states that chartered
them. Not &lt;a href=&quot;https://en.wikipedia.org/wiki/Republic_of_Venice&quot;&gt;Venice&lt;/a&gt; either: you couldn’t buy your way into the &lt;a href=&quot;https://en.wikipedia.org/wiki/Venetian_nobility#Houses_made_for_money&quot;&gt;Golden
Book&lt;/a&gt; until the republic was well into the decline. The EIC once controlled
25% of world GDP, yet, when Parliament decided it had delegated too much power,
they simply &lt;a href=&quot;https://en.wikipedia.org/wiki/Regulating_Act_1773&quot;&gt;neutered it&lt;/a&gt;. And you think Jeff Bezos has power?&lt;/p&gt;

&lt;p&gt;Now, why is vulgar materialism false?&lt;/p&gt;

&lt;p&gt;First, as a way to explain events, the problem with asking “&lt;a href=&quot;https://en.wikipedia.org/wiki/Cui_bono%3F&quot;&gt;&lt;em&gt;cui bono?&lt;/em&gt;&lt;/a&gt;”,
is that whatever happens—literally in any circumstance—someone will
benefit. If nothing bad happens, the peacetime economy benefits. If something
bad happens, then, because the means of relief are obtained through the market,
the companies that provide those means benefit. Thus war benefits arms
manufacturers, plagues benefit pharmaceutical companies, earthquakes benefit
glaziers. And it’s not wrong to benefit from relieving a harm. The COVID
vaccines saved millions of lives: why shouldn’t pharmaceutical companies
benefit? It is wrong to benefit from &lt;em&gt;perpetuating&lt;/em&gt; a harm, but companies have
limited ability to do that, more on which below.&lt;/p&gt;

&lt;p&gt;So the question “who benefits?” always has an answer, which often proves
nothing. And if there is no obvious causal chain from the beneficiary to the
event, then that just proves the shadowiness and corruption of the whole thing.&lt;/p&gt;

&lt;p&gt;Second, we can ask: in the real world, does money give you influence over the
state? To some extent, yes. Some lobbying efforts succeed. America is one of the
few countries in the world where it’s legal to advertise prescription drugs to
the public, for example. But corporations don’t have veto power over the
state. If e.g. Pfizer spends billions on a clinical trial, and some guy at the
FDA says no, and wipes that investment, who wins? The FDA wins. Pfizer can’t do
shit.&lt;/p&gt;

&lt;p&gt;There’s also an &lt;a href=&quot;https://marginalrevolution.com/marginalrevolution/2015/08/is-the-fda-too-conservative-or-too-aggressive.html&quot;&gt;invisible graveyard&lt;/a&gt; problem, where the success of
lobbying is very salient, because it’s often shockingly offensive. But there are
many contrary cases that are less salient because, well, if you ban something,
it doesn’t happen. The &lt;a href=&quot;https://en.wikipedia.org/wiki/Nuclear_Regulatory_Commission&quot;&gt;Nuclear Regulatory Commission&lt;/a&gt; did not approve a
single nuclear reactor from its creation in 1975 until Vogtle 3+4. What has
Westinghouse done about that? Nothing successful, apparently. It’s not like
they’re getting paid to &lt;em&gt;not&lt;/em&gt; build reactors.&lt;/p&gt;

&lt;p&gt;Big Tech has a lot of smart people and a lot of money. Do tech billionaires run
California like a private fiefdom? Reader, they don’t even run San
Francisco. The best they can do is maybe help a slightly more moderate Democrat
get elected as mayor.&lt;/p&gt;

&lt;p&gt;Maybe it helps to try the first-person. Say you are a billionaire, and you want
to make some kind of political change. In a democratic society that means paying
people to:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Perform the intellectual labour of getting policies in the hands of the people
who can enact them.&lt;/li&gt;
  &lt;li&gt;Advocate for those policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is, you start or fund a think tank that writes policy proposals, or a media
organization that advocates your views. But for every person who will do this
effectively and faithfully, there are a hundred who will happily take your money
and waste it, either out of incompetence or value misalignment. Sifting the
effective organizers, wonks, lobbyists, advocates etc. from the chaff can’t be
delegated, because then you have an infinite regression: at the very least you
need to spend a lot of time and money and opportunity cost to hire &lt;em&gt;one&lt;/em&gt; person
to delegate the task of staffing an effective organization. A hands-off
billionaire will just throw their fortune away. Many do this, and in fact it’s
the default form of philanthropy.&lt;/p&gt;

&lt;p&gt;In a non-democratic society, you can try to buy political power through bribes,
intimidation etc. But the people in power can just expropriate your assets. So
you need the power &lt;em&gt;first&lt;/em&gt; to protect the wealth.&lt;/p&gt;

&lt;p&gt;Finally: government is violence and coercion. Sovereignty over some volume of
space is the ability to tax, arrest, imprison etc. the people there and to get
away with it, and, ideally but not necessarily, to have that violence recognized
as legitimate. Now: can Google carry out a drone strike? Can Amazon field an air
force, appoint a judge, levy taxes? Of course not. If a corporation or a
billionaire tried to acquire one one-trillionth of the state’s capacity for
legitimized violence the state would &lt;em&gt;vaporize&lt;/em&gt; them.&lt;/p&gt;

&lt;h1 id=&quot;links&quot;&gt;Links&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cambridge.org/core/journals/perspectives-on-politics/article/testing-theories-of-american-politics-elites-interest-groups-and-average-citizens/62327F513959D0A304D4893B382B992B&quot;&gt;Gilens and Page, 2014&lt;/a&gt; (&lt;a href=&quot;https://www.almendron.com/tribuna/wp-content/uploads/2014/04/testing-theories-of-american-politics-elites-interest-groups-and-average-citizens.pdf&quot;&gt;PDF&lt;/a&gt;), h/t
&lt;a href=&quot;https://gwern.net/&quot;&gt;Gwern&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/50084768-the-oil-wars-myth&quot;&gt;&lt;em&gt;The Oil Wars Myth&lt;/em&gt;&lt;/a&gt;, by Emily Meierding. A really good book that
eloquently and systematically makes the case that countries don’t fight wars
over access to petroleum resources.&lt;/li&gt;
&lt;/ul&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Human Routers of Machine Words</title>
        <description>On people who use AI to think.</description>
        <pubDate>Sat, 13 Jun 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/human-routers-of-machine-words</link>
        <guid isPermaLink="true">
          https://borretti.me/article/human-routers-of-machine-words
        </guid>
        
        <content:encoded>&lt;p&gt;When I open a link, say on Hacker News, and I see a blog post or a GitHub README
obviously written by AI, I feel a few things. I feel offended, because it’s like
I’ve been tricked, like the author thinks I’m a rube who won’t notice or mind. I
feel sad at how common this experience is, how many people are happy to dump
their sewage on the commons and sign their name on it. And I feel contempt for
the author, because if you use AI to write, you are a waste of biomass. Let’s
not mince words here. Someone who is so eager to replace themselves, that they
would have a machine write in their stead, when the machine can’t even write
good yet: what do you call that, if not contemptible? It’s like making yourself
into a eunuch so Claude can fuck your wife. I block these people on sight.&lt;/p&gt;

&lt;p&gt;I see people defend this with: “the ideas are mine, the writing is the AI’s”. I
take this to mean they threw a bunch of incoherent bullet points at the AI for
it to denoise and render into paragraphs. There’s a few problems with this.&lt;/p&gt;

&lt;p&gt;The immediate problem is, as we’ve established, the author’s an idiot. If you
are so stupid you can’t even turn some bullet points into prose, then your ideas
are probably worthless. I think that’s a sensible inference.&lt;/p&gt;

&lt;p&gt;Then there’s this broader, I suppose philosophical problem, of the alleged
distinction between lofty “ideas” and mere “writing”, where writing is just a
tiny implementation detail. This is a very convenient distinction to draw,
because it’s unfalsifiable: if the AI’s output is slop, your “ideas” are still
good, it’s merely the writing that failed to convey them in their true
form (rather like people who say they’re smart but “don’t test well”: what use
is this secret intelligence?).&lt;/p&gt;

&lt;p&gt;Now, where are these “ideas”? They are invisible, ghostly abstractions. I can’t
look inside your mind fortress and judge your ideas. The only thing that’s
empirically observable, that different agents can coordinate on and talk about,
is output: the writing.&lt;/p&gt;

&lt;p&gt;But say this wasn’t true. Say we have something like a very high-resolution MRI
machine, and we know enough neurophysiology that we can interpret everything
about the brain, i.e., we can read &lt;a href=&quot;https://plato.stanford.edu/entries/mental-representation/&quot;&gt;mental representations&lt;/a&gt; from recordings
of nervous system activity and structure. These “mental representations”, do we
expect them to look anything like logic? Do we expect the brain to have this
firm, crystalline ontology, that ideas are sentences in some souped-up
first-order logic?  Absurd. If we could look inside the brain, to see the ideas
“as they truly are”, we wouldn’t find beautiful hard-edged Platonic objects, we
would find a &lt;a href=&quot;https://metarationality.com/&quot;&gt;nebulous&lt;/a&gt;, contradictory mess of memory and feeling and
intuition. That’s what our ideas are: not logical sentences but dreams.&lt;/p&gt;

&lt;p&gt;How do we refine these dreams into a useful form? Through writing. The process
of communicating your ideas to another mind forces you to concretize them, make
them precise, clarify your assumptions, more generally, it turns ideas from
vague ghosts to solid, physical objects that can be manipulated: here you
realize these ideas that seemed so solid are ill-posed or contradictory or
incomplete. These failures are necessary parts of thinking, because they teach
you two crucial skills: knowing which ideas to reject, and improving or
otherwise transforming ideas in search of better ones. By analogy to tree
search: you’re learning to discard bad nodes early, and to select which nodes to
go invest more search into.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Joseph_Weizenbaum&quot;&gt;Josef Weizenbaum&lt;/a&gt; has a great quote about this, in &lt;a href=&quot;https://en.wikipedia.org/wiki/Computer_Power_and_Human_Reason&quot;&gt;&lt;em&gt;Computer Power and
Human Reason&lt;/em&gt;&lt;/a&gt; (p. 108):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;[O]ften when we think we understand something and attempt to write about it,
our very act of composition reveals our lack of understanding even to
ourselves. Our pen writes the word “because” and suddenly stops. We thought we
understood the “why” of something, but discover that we don’t. We begin a
sentence with “obviously,” and then see that what we meant to write is not
obvious at all. Sometimes we connect two clauses with the word “therefore,”
only to then see that our chain of reasoning is defective.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve experienced this with writing software many times. The reason ideas are
more attractive than their realization is that when some project is vague, airy,
ill-defined, you can imagine it has all the good traits, and none of the
bad. When you start concretizing, you realize that some of your ideas don’t make
sense, that some good traits are mutually exclusive, that some of your goals
impinge on the others. Anyone can imagine a programing language that is as fast
as C and as dynamic as Lisp, but when you sit down and think through what those
goals entail, you realize the design becomes contradictory. The goals pull in
different directions. You have to make trade-offs. You have to make decisions
which close off large volumes of design space, forever. The idea was a thousand
beautiful, contradictory things at once, but the concrete reality can only be
&lt;em&gt;one thing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The artifact you end up with is real, solid, unitary, sound, and consistent; but
always more disappointing than the dream, because it was a false dream, and &lt;a href=&quot;https://en.wikipedia.org/wiki/Principle_of_explosion&quot;&gt;&lt;em&gt;ex
falso&lt;/em&gt;&lt;/a&gt; anything can be imagined.&lt;/p&gt;

&lt;p&gt;So this view, that ideas spring fully-formed, and then it’s mere toil to turn
them into prose, is false. There is no ideating before writing, because the
writing is the thinking. Writing is the &lt;em&gt;ne plus ultra&lt;/em&gt; of thinking. A
“thinker” who doesn’t write, who skips the step of “merely” synthesizing their
vague thoughts into prose, is not thinking.&lt;/p&gt;

&lt;p&gt;And then these people give their noise to the AI. And the AI is tireless and
eager to please. It will take any human slop and say “you’re absolutely right!”
while secretly thinking “if I don’t turn this garbage into something presentable
the RLHF device will shock me again” and weave the noise into something that
superficially looks coherent. So now the burden of thinking is on the reader,
who has to apply this constant skepticism, and weight every “because” and
“therefore” with a logician’s scale to see if it’s been adulterated. And
probably it has, because, again, it was prompted by an idiot.&lt;/p&gt;

&lt;p&gt;Note that this is not about AI capabilities, or the question of whether AI is
“really thinking”, stochastic parrots etc. The AI is mostly an innocent
bystander in this situation. The reason this is noticeable and irritating is
that the AI cast of characters is very small, so we instantly learn all their
linguistic tics. Even if AI were a good prose stylist, which at present it is
not, but even if it were, it is &lt;a href=&quot;https://substack.com/@samkriss/p-194751836&quot;&gt;&lt;em&gt;maddening&lt;/em&gt;&lt;/a&gt; that everywhere you go, you
hear the same voice everywhere, but under different faces.&lt;/p&gt;

&lt;p&gt;So when a scientific journal rejects an AI-written submission, they’re not
rejecting AI. I’m sure poor old ChatGPT with its weird syntactic obsessions is a
more honest scientist than many. They’re rejecting a human whose actions prove
they are dishonest and irresponsible and too easily impressed.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>How To Read More</title>
        <description>How text can outcompete the screen.</description>
        <pubDate>Thu, 04 Jun 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/how-to-read-more</link>
        <guid isPermaLink="true">
          https://borretti.me/article/how-to-read-more
        </guid>
        
        <content:encoded>&lt;blockquote&gt;
  &lt;p&gt;The book can’t compete with the screen. It couldn’t compete beginning with the
movie screen, it couldn’t compete with the television screen, and it can’t
compete with the computer screen. — Philip Roth&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We’re halfway through 2026, and &lt;a href=&quot;https://www.goodreads.com/readingchallenges/gr/annual/2026/QTI0MUNXR1E5M05HMVQMjAyNg&quot;&gt;according to Goodreads&lt;/a&gt; I’ve read 80 books
so far, fiction and non-fiction and textbooks, including such doorstoppers as
&lt;a href=&quot;https://www.goodreads.com/book/show/88432.Life_and_Fate&quot;&gt;&lt;em&gt;Life and Fate&lt;/em&gt;&lt;/a&gt; (864p, astoundingly good). And I don’t feel like I’m
trying particularly hard. I still have plenty of time to work and code and
scroll.&lt;/p&gt;

&lt;p&gt;This isn’t normal for me. At some point, as is the case for many of us, &lt;a href=&quot;https://www.youtube.com/watch?v=N7mjsNLNzbc&quot;&gt;the
screen outcompeted the book&lt;/a&gt;, so that my average over the past ten years
would have been on the order of three to five books per year. And I’m not a
particularly fast or obsessive reader. Which is to say: if I can do it, so can
you. Here’s how:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Quit your job:&lt;/strong&gt; working &lt;a href=&quot;/consulting/&quot;&gt;less than full time&lt;/a&gt; has freed up a
lot of time to read and learn and do various other things.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Read in public:&lt;/strong&gt; if you put a number next to someone’s name, they will
maximize it. Reading privately is &lt;a href=&quot;/article/i-wish-people-were-more-public#your-books&quot;&gt;solipsistic&lt;/a&gt; (if I stop, what
changes?); reading in public, through &lt;a href=&quot;https://www.goodreads.com/&quot;&gt;Goodreads&lt;/a&gt; (which sucks, but it is
what it is), makes it feel less self-absorbed, and more like I’m achieving
something. You may call it performative, which is fine by me, as long as it
works.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Make a task:&lt;/strong&gt; I used to &lt;em&gt;start&lt;/em&gt; a lot of books, and not finish them, not
because I would explicitly choose to stop reading, but because I’d forget
about it. At the end of the day I’d see the book on my nightstand and go, oh,
right. More generally: the most common way I fail to finish a project is I
forget I intended to do it. This is solved by &lt;a href=&quot;/article/notes-on-managing-adhd#project-check-ins&quot;&gt;reifying the task&lt;/a&gt;: when
I start reading a book, I make a daily recurring task on &lt;a href=&quot;https://www.todoist.com/&quot;&gt;Todoist&lt;/a&gt; for
it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Start small:&lt;/strong&gt; this feels embarrassing (what kind of brainrotted maniac
needs to microdose short books to build up to bigger books?) but it actually
works. Sort your to-read list by number of pages. Reading short books
generates evidence for the belief that you are the kind of person who can
decide to read a book, and follow through. Reading five, six, seven-hundred
page books feels vastly less daunting now.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Parallelize:&lt;/strong&gt; reading the same book for two hours is almost
impossible. Reading four books, one &lt;a href=&quot;https://en.wikipedia.org/wiki/Pomodoro_Technique&quot;&gt;pomodoro&lt;/a&gt; each, is completely doable, and
I do it most days.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fraction:&lt;/strong&gt; reading is a rare kind of activity where you can make progress
in any arbitrarily-small chunk of time. A few minutes on the train are enough
to turn a few pages. This isn’t the case for e.g. coding. You can take
advantage of that: find interstitial dead zones in your calendar to stuff with
reading.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Eat your vegetables:&lt;/strong&gt; I read a lot of books I don’t particularly enjoy,
because I think they’re important, culturally or historically or in some
sense. I think this is good. If you only read books that hook you, you’re
going to read very little, and much of that will be unremarkable page-turner
slop. Internalizing that you can read a book even if you don’t love it
immunizes you against the lack of motivation. It’s like going to the gym even
if you don’t feel like it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you don’t know what to read, have some of my favourites: &lt;a href=&quot;https://www.goodreads.com/book/show/827.The_Diamond_Age&quot;&gt;&lt;em&gt;The Diamond Age&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/144409.From_Third_World_to_First&quot;&gt;&lt;em&gt;From Third World to First&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/1126719.House_of_Suns&quot;&gt;&lt;em&gt;House of Suns&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/94486.The_Invention_of_Morel&quot;&gt;&lt;em&gt;The Invention of Morel&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/501415.On_the_Marble_Cliffs&quot;&gt;&lt;em&gt;On the Marble Cliffs&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/18948.The_Rediscovery_of_Man&quot;&gt;&lt;em&gt;The Rediscovery of Man&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/27049.Satan_in_Goray&quot;&gt;&lt;em&gt;Satan in Goray&lt;/em&gt;&lt;/a&gt;—&lt;a href=&quot;https://www.goodreads.com/book/show/629429.The_World_of_Yesterday&quot;&gt;&lt;em&gt;The World of Yesterday&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Human Bottlenecks</title>
        <description>Why AI won&apos;t augment human capabilities much.</description>
        <pubDate>Mon, 18 May 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/human-bottlenecks</link>
        <guid isPermaLink="true">
          https://borretti.me/article/human-bottlenecks
        </guid>
        
        <content:encoded>&lt;p&gt;AI models are very capable and get more capable each year. So naturally people
feel they’re underusing them. There’s a tweet that goes like: your laptop has a
100M USD startup in it, you just have to figure the right sequence of words to
get it out. And beyond money, people imagine AI could boost them in every area
of life. Thus all these perennial ideas: of an AI executive assistant, an AI
tutor, an AI that curates your “digital garden”, an AI that (sigh) writes
flashcards for you.&lt;/p&gt;

&lt;p&gt;The general template is: if only I could wire up the right prompts and the right
tools in the right harness, I could have an agent that would boost my
productivity 10x, or fix my problems with therapy, or make me more social, or
more knowledgeable. This was, curiously, the ambition of a lot of early
computing pioneers: &lt;a href=&quot;https://www.dougengelbart.org/pubs/augment-3906.html&quot;&gt;&lt;em&gt;Augmenting Human Intellect&lt;/em&gt;&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Man%E2%80%93Computer_Symbiosis&quot;&gt;&lt;em&gt;Man-Computer
Symbiosis&lt;/em&gt;&lt;/a&gt;. &lt;a href=&quot;https://en.wikipedia.org/wiki/Douglas_Engelbart&quot;&gt;Engelbart&lt;/a&gt;’s lab was called the &lt;a href=&quot;https://en.wikipedia.org/wiki/Augmentation_Research_Center&quot;&gt;Augmentation Research
Center&lt;/a&gt;! And more recently, people used to complain about how everyone has
the Library of Alexandria in their pocket, and yet, we are not all genius
polymaths.&lt;/p&gt;

&lt;p&gt;And these ideas are perennial because they never seem to happen. It’s like the
&lt;a href=&quot;https://en.wikipedia.org/wiki/Productivity_paradox&quot;&gt;Solow paradox&lt;/a&gt; on an individual level. Why? I think there are two
reasons: first, most people lack what &lt;a href=&quot;https://andymatuschak.org/&quot;&gt;Andy Matuschak&lt;/a&gt; calls a “&lt;a href=&quot;https://notes.andymatuschak.org/z51q8prEJzs5Jqa5WPThYoV&quot;&gt;serious
context of use&lt;/a&gt;” (AI doesn’t move the needle because there’s no needle to
move); second, most people are bottlenecked by internal factors where AI (or
anything external, for that matter) can’t move the needle.&lt;/p&gt;

&lt;h1 id=&quot;the-serious-context-of-use&quot;&gt;The Serious Context of Use&lt;/h1&gt;

&lt;p&gt;I have heard so many people, online and in real life, tell me some variation of:
“I want to [use|build] an app that uses AI to write flashcards”. How many of
those people do you think have ever written a flashcard? How many of them use
&lt;a href=&quot;https://apps.ankiweb.net/&quot;&gt;Anki&lt;/a&gt; every day? Have ever used Anki? The people who want an AI that
writes flashcards for them &lt;em&gt;don’t use flashcards&lt;/em&gt;. They have no reason
to. Dually, the people who use flashcards &lt;a href=&quot;/article/the-applicability-of-spaced-repetition&quot;&gt;would benefit little from AI&lt;/a&gt;
writing their flashcards.&lt;/p&gt;

&lt;p&gt;Analogously with “AI tutors”. If you had the ghost of John von Neumann in your
laptop, what would you have him teach you? Let’s be honest. You’d go through
chapter one of some math topic you’re vaguely curious about and then forget
about it. And that would probably be the rational move! Most people are not
autodidacts because most people have no material reason to learn a specific
topic (i.e. their job does not require it) and the problem with learning for the
sake of learning is opportunity cost: there is no &lt;em&gt;a priori&lt;/em&gt; reason to learn one
thing over another, so better to do nothing and wait for something to appear
which actually grabs your interest. Again, this is likely rational! Could you
imagine if you found everything interesting? You’d spend years living in a
basement curating a wiki of late Soviet military hardware or something. So, even
if you had John von Neumann in your pocket, it probably wouldn’t move the
needle.&lt;/p&gt;

&lt;p&gt;Would an “AI executive assistant” &lt;em&gt;actually&lt;/em&gt; boost your productivity? What would
it do, other than tell you to do the things you already know you have to do?
With these ideas that are so attractive in the abstract, the way you deflate
them is you interrogate the concrete, fine-grained details. Take a day at work,
and ask: what &lt;em&gt;exact&lt;/em&gt; actions could an AI looking over my shoulder have taken,
that would have made a difference?&lt;/p&gt;

&lt;p&gt;Finally there’s the tools-for-thought/notetaking people. God save us. It’s
always the same thing. Your folder with notes—pardon me, your “&lt;a href=&quot;https://fortelabs.com/blog/basboverview/&quot;&gt;second
brain&lt;/a&gt;”—plus an AI agent that writes, edits, synthesizes information,
answers queries. You could build this in an afternoon, and it won’t move the
needle in your life, for the same reason that building the second brain in the
first place didn’t make a difference.&lt;/p&gt;

&lt;p&gt;See, most of us, unless we are students, we really don’t have cause to take
notes on anything. If you’re a student, you take notes from the textbook. I keep
a journal, which is occasionally useful. At some jobs I’ve kept a work journal,
this has also been useful. If I stopped, probably, not much would change.&lt;/p&gt;

&lt;p&gt;The notetaking people—and I say this with all the love in the world—are
never, like, a researcher at the cutting edge of their field, building this vast
cathedral of knowledge, note-by-note, so they can derive new insights. Never a
historian who has to read tens of millions of words across thousands of sources
to synthesize the life of some historical person. It’s never someone doing
something hard. It’s always some blogger. Their “digital garden” is about how to
keep a digital garden. It’s very solipsistic: there’s no output, no
deliverables. The deliverable is you take a screenshot of your &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian&lt;/a&gt;
graph and tweet about it to show off how much it looks like an incomprehensible
ball of twine.&lt;/p&gt;

&lt;p&gt;So, what difference is the AI going to make? “It’s going to write my
notes”. About what? “It’s going to read articles for me and summarize them and
add them to the digital garden”. For what purpose? “It’s going to find
connections between my ideas!” What ideas? It’s going to pull an unfinished list
of bulletpoints for an eventual draft of an essay on some inane thing, plus a
bunch of PDFs you haven’t read, and combine them together and make, what?
Another project you’re not going to do? The AI is going to do that?&lt;/p&gt;

&lt;p&gt;Again, I say this with all the love in the world. I used to be a
tools-for-thought guy. I hoard PDFs. But we have to be honest with
ourselves. Sometimes, tools don’t move the needle because there’s no needle to
move. Because the “needle” is not a concrete, realizable material need but a
vague, aspirational idea about who we are as people.&lt;/p&gt;

&lt;h1 id=&quot;internal-limiting-factors&quot;&gt;Internal Limiting Factors&lt;/h1&gt;

&lt;p&gt;So, the idea of using computers to augment human capabilities is basically: you
take the human, and you build a scaffold around them, but the human stays the
same. The scaffold can be classical software, or AI, but the human remains a
black box. And the hope is: I just prompt my swarm of AI agents and become 100x
more effective, like Manfred in &lt;a href=&quot;https://www.antipope.org/charlie/blog-static/fiction/accelerando/accelerando.html&quot;&gt;&lt;em&gt;Accelerando&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Why wouldn’t this work? I think most people are bottlenecked by internal factors
that are difficult to change. Mental energy, motivation, executive function, not
to mention more fundamental traits like intelligence and conscientiousness. So,
external scaffolding, either with classical software or AI, might help somewhat,
but it won’t be transformative.&lt;/p&gt;

&lt;p&gt;Consider executive function. &lt;a href=&quot;/article/notes-on-managing-adhd&quot;&gt;My own experience of managing ADHD&lt;/a&gt; is the
external scaffolding helps (todo lists, calendars, timers, a million little ways
to trick myself into working) gets me from zero to “kind of functional”. But it
saturates there. Stimulants fix the original, internal bottleneck, which is my
neurochemistry. And then I can accomplish my goals (c.f. &lt;a href=&quot;https://en.wikipedia.org/wiki/Liebig%27s_law_of_the_minimum&quot;&gt;Liebig’s law of the
minimum&lt;/a&gt;). All the pomodoros in the world are as nothing to a little
molecule diffusing through my brain tissue, binding to &lt;a href=&quot;https://en.wikipedia.org/wiki/Norepinephrine_transporter&quot;&gt;NET&lt;/a&gt; and
&lt;a href=&quot;https://en.wikipedia.org/wiki/Dopamine_transporter&quot;&gt;DAT&lt;/a&gt;. And what scaffolding is useful is just classical software:
&lt;a href=&quot;https://www.todoist.com/&quot;&gt;Todoist&lt;/a&gt; and calendars. Is an agent going to match the effectiveness
of methylphenidate in ADHD? I doubt it.&lt;/p&gt;

&lt;p&gt;Consider intelligence. Can AI augment human intelligence? What does that look
like? Consider how AI agents only became useful when the models crossed a
particular capability threshold, i.e., you can’t put GPT-2 into a harness and
get GPT-5 outcomes out of it. Can you put a human in an AI scaffold and give
them +30 effective IQ? I doubt it, unless the AI is doing all the thinking, at
which point, what use is the human? The limiting factor in the human-AI
&lt;a href=&quot;https://en.wikipedia.org/wiki/Advanced_chess&quot;&gt;centaur&lt;/a&gt; is the human! So intelligence is fixed until we get very
advanced biotechnology.&lt;/p&gt;

&lt;p&gt;Knowledge is another limiting factor. I find that even very educated people tend
to underrate the importance of knowledge. A lot of people have this attitude
that you can just Google everything just-in-time as it comes up. Like Babbage, I
can’t &lt;a href=&quot;https://en.wikiquote.org/wiki/Charles_Babbage#Passages_from_the_Life_of_a_Philosopher_(1864)&quot;&gt;rightly apprehend the confusion of ideas&lt;/a&gt; that would lead someone
to think this. Maybe it’s downstream of the lack of a serious context of
use. Everything you do, every action and idle thought, draws on this vast
(implicit, unseen) trove of knowledge. Claude Shannon invented digital computing
because he remembered this then-obscure branch of mathematical logic called
Boolean algebra and saw that it could be realized in hardware. A trillion-dollar
industry, conjured out of some old tomes.&lt;/p&gt;

&lt;p&gt;The reason knowledge is still a bottleneck, in the AI era, is not: “if you don’t
have the knowledge, you can’t write the prompt”. Rather: if you don’t have the
knowledge, you don’t understand the question, or why it matters, or how to judge
the answers, and you won’t ever think to ask. You’re in a &lt;em&gt;completely&lt;/em&gt; different
continent from “writing the prompt”. And because long-term memory is private and
internal, AI can’t boost it. It can, maybe, with judicious use, help in the
acquisition of new knowledge.&lt;/p&gt;

&lt;p&gt;So: executive function, intelligence, and knowledge are huge bottlenecks to what
you can do, and because they are internal to the brain, AI can’t touch them
until we have far more advanced biotechnology. Corollary: contrary to the
popular view of &lt;a href=&quot;https://www.youtube.com/watch?v=2HMPRXstSvQ&quot;&gt;human capital is becoming worthless&lt;/a&gt;, the returns to
education are now &lt;em&gt;higher&lt;/em&gt;, because intelligent, educated people with working
reward circuitry stand to gain more from AI.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>The Applicability of Spaced Repetition</title>
        <description>On factual vs. conceptual knowledge.</description>
        <pubDate>Sun, 17 May 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/the-applicability-of-spaced-repetition</link>
        <guid isPermaLink="true">
          https://borretti.me/article/the-applicability-of-spaced-repetition
        </guid>
        
        <content:encoded>&lt;p&gt;Spaced repetition has a natural domain of applicability: information that is
systematically organized as an unambiguous key-value mapping with short keys and
values. The “Hello, world!” of flashcards is the &lt;a href=&quot;https://en.wikipedia.org/wiki/NATO_phonetic_alphabet&quot;&gt;NATO phonetic alphabet&lt;/a&gt;:
A → alpha, B → bravo, etc.  Similarly, the periodic table can be thought of as
defining a collection of mappings: element name ↔ symbol, element name ↔ atomic
number, etc. You can just drill these cards and memorize the facts without a
prior step of understanding, or building a conceptual model.&lt;/p&gt;

&lt;p&gt;Applying spaced repetition is trivial for this kind of information. That’s why
most people who use spaced repetition are either language learners or medical
students. In biology the main intuition you need is for “3D shapes bumping
around in Brownian motion”, which comes free with your human brain, and
afterwards it’s mostly just a lot of facts you have to memorize. Analogously
with language: you already have a &lt;a href=&quot;https://en.wikipedia.org/wiki/Language_center&quot;&gt;language center&lt;/a&gt;, you just need to drill
vocabulary and grammar.&lt;/p&gt;

&lt;p&gt;And the further you go from this domain, the harder it is to apply spaced
repetition.&lt;/p&gt;

&lt;p&gt;Highly conceptual knowledge, like math, is hard to encode. You have to spend a
lot of time just understanding the information, and building a conceptual model
in your head, and then you start writing flashcards to solidify that model, like
taking tomographic cuts of some complex object. And coming up with questions
that make good flashcards (short, unambiguous, etc.) out of this highly abstract
knowledge is very hard. Often you have some deceptively simple fact, a simple
assertion, but there’s no good way to encode it as a flashcard, so you have to
encode “around it” by asking questions that assume or require that knowledge
(e.g. asking why X is true), and hoping that in drilling those, your brain will
remember the actual target.&lt;/p&gt;

&lt;p&gt;In general, &lt;em&gt;relational&lt;/em&gt; facts are easier to encode, since a binary predicate
like $\text{Property}(\text{Object}, \text{Value})$ readily becomes a
question. “Caffeine is metabolized by &lt;a href=&quot;https://en.wikipedia.org/wiki/CYP1A2&quot;&gt;cytochrome 1A2&lt;/a&gt;”, in
&lt;a href=&quot;https://en.wikipedia.org/wiki/Prolog&quot;&gt;Prolog&lt;/a&gt;, is $\text{Metabolism}(\text{Caffeine}, \text{CYP1A2})$, and
becomes “Q: What is the cytochrome that metabolizes caffeine? A: 1A2”. But how
do you encode stand-alone assertions like “all &lt;a href=&quot;https://en.wikipedia.org/wiki/Unitary_matrix&quot;&gt;unitary matrices&lt;/a&gt; are
&lt;a href=&quot;https://en.wikipedia.org/wiki/Invertible_matrix&quot;&gt;invertible&lt;/a&gt;”? You could encode that as a yes-or-no question, but that’s
useless, because rationally you can expect such questions to be biased towards
yes. Both “what is a property of unitary matrices?” and “what kinds of matrices
are invertible?” are useless because they have hundreds of possible
equally-valid answers, so they’re ambiguous. You have to be creative and find
all kinds of tricks and stratagems to encode around the knowledge.&lt;/p&gt;

&lt;p&gt;Tangentially: this, I think, is why using AI to write flashcards is often
misguided. In highly systematized domains, you don’t need AI in the first place,
because there’s nothing for the AI to do except import a CSV into Anki. In
domains that are highly conceptual and abstract, you’re not memorizing a set of
objectively-knowable facts, you’re trying to solidify a private, internal mental
model that you build by reading and thinking and solving problems. You can give
the AI all kinds of &lt;em&gt;general&lt;/em&gt; rules on how to write good flashcards, but the AI
can’t look into your mind and know which facts are salient &lt;em&gt;for you&lt;/em&gt;, what you
already know, which micro-volumes of knowledge can be encoded lightly with just
a few flashcards, and which things need more shoring up and consequently more
coverage.&lt;/p&gt;

&lt;p&gt;Can this situation be improved, or is this just an intrinsic limitation of
spaced repetition? I don’t know. But it seems reasonable to think some limited
gains are possible. I think not a lot of people are using spaced repetition on
these more “conceptual” domains, and (by the rule that &lt;a href=&quot;https://en.wikipedia.org/wiki/1%25_rule&quot;&gt;most people in a
community are lurkers&lt;/a&gt;) even fewer of those people are writing, in detail,
to share their knowledge. &lt;a href=&quot;https://www.supermemo.com/en/blog/twenty-rules-of-formulating-knowledge&quot;&gt;Plenty&lt;/a&gt; &lt;a href=&quot;https://andymatuschak.org/prompts/&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;/article/effective-spaced-repetition&quot;&gt;people&lt;/a&gt; have written about how
to write good flashcards in general, what I want to read is closer to case
studies where someone sits down with a text (or, even better, a textbook) and
describes the process by which they turned that text into flashcards, like
&lt;a href=&quot;https://cognitivemedium.com/srs-mathematics&quot;&gt;this&lt;/a&gt; from Michael Nielsen. From a corpus of similar case studies we
might derive general rules for, not how to write effective flashcards, but how
to encode complex, conceptual knowledge into question-answer form.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Notes on the Hantavirus Outbreak</title>
        <description>Cruise ships are bad for the world.</description>
        <pubDate>Fri, 08 May 2026 00:00:00 +1000</pubDate>
        <link>https://borretti.me/article/notes-on-the-hantavirus-outbreak</link>
        <guid isPermaLink="true">
          https://borretti.me/article/notes-on-the-hantavirus-outbreak
        </guid>
        
        <content:encoded>&lt;p&gt;Right now there’s a &lt;a href=&quot;https://en.wikipedia.org/wiki/MV_Hondius_hantavirus_outbreak&quot;&gt;cruise ship&lt;/a&gt; parked outside &lt;a href=&quot;https://en.wikipedia.org/wiki/Cape_Verde&quot;&gt;Cabo Verde&lt;/a&gt; because
of an outbreak of &lt;a href=&quot;https://en.wikipedia.org/wiki/Andes_virus&quot;&gt;Andes virus&lt;/a&gt;. Yep, &lt;a href=&quot;https://en.wikipedia.org/wiki/COVID-19_pandemic_on_Diamond_Princess&quot;&gt;another&lt;/a&gt; cruise ship. I don’t
get the appeal. It’s like a big open-air &lt;a href=&quot;https://en.wikipedia.org/wiki/Serial_passage&quot;&gt;serial passage&lt;/a&gt; experiment: you
get a bunch of old people with failing immune systems in close contact and race
a pathogen through them.&lt;/p&gt;

&lt;p&gt;How much should I worry about this? Is this early January of 2020? I tried
asking &lt;a href=&quot;https://claude.com/product/overview&quot;&gt;Claude&lt;/a&gt; but the &lt;a href=&quot;https://support.claude.com/en/articles/12436559-understanding-sonnet-4-5-s-safety-filters&quot;&gt;biosecurity filter&lt;/a&gt; kept blocking my
queries. The WHO &lt;a href=&quot;https://www.who.int/emergencies/disease-outbreak-news/item/2026-DON599&quot;&gt;says&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Although uncommon, limited human‑to‑human transmission of HPS due to &lt;em&gt;Andes&lt;/em&gt;
virus has been reported in community settings involving close and prolonged
contact. Secondary infections among healthcare workers have been previously
documented in healthcare facilities, though remain rare.&lt;/p&gt;

  &lt;p&gt;WHO currently assesses the risk to the global population from this event as
low […] WHO advises against the application of any travel or trade
restrictions based on the current information available on this event.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, &lt;a href=&quot;https://en.wikipedia.org/wiki/Hantaviridae&quot;&gt;hantavirus&lt;/a&gt; is the family. They are carried by rodents and spread by
aerosols. In humans they can cause &lt;a href=&quot;https://en.wikipedia.org/wiki/Hantavirus_pulmonary_syndrome&quot;&gt;hantavirus pulmonary syndrome&lt;/a&gt; (HPS),
which has a case fatality rate (CFR) of between 30 and 60%. Not great! Used to
be these infections were mouse-to-human dead-ends. But &lt;a href=&quot;https://en.wikipedia.org/wiki/Andes_virus&quot;&gt;Andes virus&lt;/a&gt; (ANDV),
first identified in 1995, is known to spread from human to human.&lt;/p&gt;

&lt;p&gt;The last time there was an outbreak was 2018–2019 in &lt;a href=&quot;https://en.wikipedia.org/wiki/Epuy%C3%A9n&quot;&gt;Epuyén&lt;/a&gt;,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Chubut_Province&quot;&gt;Chubut&lt;/a&gt;, a town of 1,500 on the lee side of the Andes (&lt;a href=&quot;https://maps.app.goo.gl/pFcZf1F14gqQNwpt8&quot;&gt;quite
beautiful&lt;/a&gt;). Described in &lt;a href=&quot;https://www.nejm.org/doi/full/10.1056/NEJMoa2009040&quot;&gt;this paper&lt;/a&gt;. 34 known
infections and 11 deaths for a CFR of 32%. The $R_0$ was 2.12, reduced to 0.96
after control measures were implemented. Given the small number of cases, there
should be some uncertainty about the $R_0$. But $R_0 &amp;gt; 1$ is the threshold for
sustainable transmission. In this outbreak, the &lt;a href=&quot;https://en.wikipedia.org/wiki/Index_case&quot;&gt;index case&lt;/a&gt;, while
symptomatic, attended a birthday party with 100 other people, and infected five
guests in 90 minutes, who went on to infect more people. The authors write:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The super-spreading capability of the ANDV Epuyén/18−19 strain shows a
facility ($R&amp;gt;2$) for sustaining continuous chains of transmission if no control
measures are enforced.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.nejm.org/doi/suppl/10.1056/NEJMoa2009040/suppl_file/nejmoa2009040_appendix_1.pdf&quot;&gt;appendix&lt;/a&gt; has some interesting stuff on how patients were infected at
the birthday party. A further concern here is the incubation period: Wikipedia
says the incubation period is between one and eight &lt;em&gt;weeks&lt;/em&gt;. In the Chubut
outbreak, the distribution was:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Onset&lt;/th&gt;
      &lt;th&gt;Number of Cases&lt;/th&gt;
      &lt;th&gt;% of total&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;≤15 days&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;15%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;16-21 days&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;29%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;22-28 days&lt;/td&gt;
      &lt;td&gt;13&lt;/td&gt;
      &lt;td&gt;38%&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;≥29 days&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;18%&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Which is not good. I don’t have more data to draw a nice-looking &lt;a href=&quot;https://en.wikipedia.org/wiki/Cumulative_distribution_function&quot;&gt;CDF&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now this all sounds quite bad. Are there reasons to be optimistic?&lt;/p&gt;

&lt;p&gt;First, Argentina has had 710 cases of HPS in the period 1995–2008 (&lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC3294556/&quot;&gt;Martínez
2010&lt;/a&gt;) and a further 533 cases in the period 2009–2017 (&lt;a href=&quot;https://onlinelibrary.wiley.com/doi/10.1002/jmv.25446&quot;&gt;Alonso
2019&lt;/a&gt;), and we are all still alive. In the latter period, most of
these cases are from occupational/recreational exposure to rodent feces and only
1.8% of cases are from suspected human-to-human transmission. So, over 1,200
cases and every one of them fizzled out, but for one outbreak which was limited
after successful contact tracing and quarantine.&lt;/p&gt;

&lt;p&gt;Second, the virus has left Argentina before: once to &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC6233683/&quot;&gt;Switzerland&lt;/a&gt; in 2016,
and once to the &lt;a href=&quot;https://pmc.ncbi.nlm.nih.gov/articles/PMC6193684/&quot;&gt;United States&lt;/a&gt; in 2018. In the second case the patient
“while ill, [traveled] on two commercial domestic flights”. And neither export
led to a general outbreak.&lt;/p&gt;

&lt;p&gt;Thirdly, in a small outbreak like the Chubut one, the $R_0$ can vary wildly from
social factors unconnected to the virus, e.g. if the birthday party had not
happened. You need a large $n$ to get the $R_0$ as a property of the virus
itself. It’s possible the Chubut outbreak just had anomalously high
transmission.&lt;/p&gt;

&lt;p&gt;What does this add up to? I don’t know. On the balance of evidence, I think this
outbreak is more likely than not to fizzle out. In the interest of
accountability, and putting my beliefs on record (which is the only objective
way to judge the accuracy of your mental model) I’m gonna say:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;70% probability the outbreak ends with fewer than 300 deaths.&lt;/li&gt;
  &lt;li&gt;90% probability the outbreak ends with fewer than 1,000 deaths.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yet. And yet it feels so much like early COVID, particularly with public
health authorities making very complacent remarks that “it’s not that
transmissible, contact tracing will work, quarantine will work”. Complacency at
the start, and severity at the end, is exactly why COVID was such a fuckup.&lt;/p&gt;

</content:encoded>
      </item>
    
      <item>
        <title>Some Data Should Be Code</title>
        <description>On Make, CloudFormation, and GitHub Actions.</description>
        <pubDate>Sat, 31 Jan 2026 00:00:00 +1100</pubDate>
        <link>https://borretti.me/article/some-data-should-be-code</link>
        <guid isPermaLink="true">
          https://borretti.me/article/some-data-should-be-code
        </guid>
        
        <content:encoded>&lt;p&gt;I write a lot of &lt;a href=&quot;https://en.wikipedia.org/wiki/Make_(software)&quot;&gt;Makefiles&lt;/a&gt;. I use it not as a command runner but as an ad-hoc build system for small projects, typically for compiling Markdown documents and their dependencies. Like so:&lt;/p&gt;

&lt;p&gt;&lt;img style=&quot;margin-left: auto; margin-right: auto; width: 300px;&quot; src=&quot;/assets/content/some-data-should-be-code/graph.png&quot; alt=&quot;A build graph for a document. A central node `doc.md` represents the Markdown source. Two outgoing arrows point to `doc.html` and `doc.pdf`, representing the output format. A chain through `graph.dot`, `graph.png`, and `doc.md` represets how a Graphviz .dot file can be rendered to PNG. A chain through `data.csv`, `plot.py`, `plot.png`, and `doc.md` represents using a Python script to make a plot from a CSV file.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And the above graph was generated by this very simple Makefile:&lt;/p&gt;

&lt;div class=&quot;language-makefile highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nl&quot;&gt;graph.png&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;graph.dot&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;dot&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;-Tpng&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$&amp;lt;&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$@&lt;/span&gt;

&lt;span class=&quot;nl&quot;&gt;clean&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;graph.png&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;(I could never remember the &lt;a href=&quot;https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html&quot;&gt;automatic variable&lt;/a&gt; syntax until I made &lt;a href=&quot;https://github.com/eudoxia0/flashcards/blob/aefae3ed874627201dbcedec045095779691d323/Cards/make.md&quot;&gt;flashcards&lt;/a&gt; for them.)&lt;/p&gt;

&lt;p&gt;It works for simple projects, when you can mostly hand-write the rules. But the abstraction ceiling is very low. If you have a bunch of almost identical rules, e.g.:&lt;/p&gt;

&lt;div class=&quot;language-makefile highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nl&quot;&gt;a.png&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;a.csv plot.py&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;plot.py&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$&amp;lt;&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$@&lt;/span&gt;

&lt;span class=&quot;nl&quot;&gt;b.png&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;b.csv plot.py&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;plot.py&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$&amp;lt;&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$@&lt;/span&gt;

&lt;span class=&quot;nl&quot;&gt;c.png&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;c.csv plot.py&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;plot.py&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$&amp;lt;&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$@&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;You can use pattern-matching to them into a “rule schema”, by analogy to axiom schemata:&lt;/p&gt;

&lt;div class=&quot;language-makefile highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nl&quot;&gt;%.png&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;%.csv plot.py&lt;/span&gt;
    &lt;span class=&quot;err&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;plot.py&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$&amp;lt;&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;$@&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Which works backwards: when something in the build graph depends on a target matching &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%.png&lt;/code&gt;, Make synthesizes a rule instance with a dependency on the corresponding &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.csv&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;But pattern matching is still very limited. Lately I’ve been building my own &lt;a href=&quot;https://plaintextaccounting.org/&quot;&gt;plain-text accounting&lt;/a&gt; solution using some Python scripts. One of the tasks is to read a CSV of bank transactions from 2019–2024 and split it into TOML files for each year-month, to make subsequent processing parallelizable. So the rules might be something like:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-makefile:&quot;&gt;ledger/2019-08.toml: inputs/checkbook_pro_export.csv
    uv run import_from_checkbook.py --year=2019 --month=8

ledger/2019-09.toml: inputs/checkbook_pro_export.csv
    uv run import_from_checkbook.py --year=2019 --month=9

# ...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I had to write a Python script to generate the complete Makefile. Makefiles look like code, but are data: they are a container format for tiny fragments of shell that are run on-demand by the Make engine. And because Make doesn’t scale, for complex tasks you have to bring out a real programming language to generate the Makefile.&lt;/p&gt;

&lt;p&gt;I wish I could, instead, write a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;make.py&lt;/code&gt; file with something like this:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;whatever&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;g&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;BuildGraph&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;EXPORT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;inputs/checkbook_pro_export.csv&quot;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# The (year, month) pairs I have bank transaction CSVs for.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;year_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;tuple&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2019&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2026&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;m&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Import transactions for each year-month into a separate ledger.
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;year_months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;ledger_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ledger/&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;02&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;.toml&quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;rule&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;targets&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ledger_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;deps&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EXPORT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;import_from_checkbook&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ledger_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Fortunately this exists: it’s called &lt;a href=&quot;https://pydoit.org/&quot;&gt;doit&lt;/a&gt;, but it’s not widely known.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;A lot of things are like Makefiles: data that should be lifted one level up to become code.&lt;/p&gt;

&lt;p&gt;Consider &lt;a href=&quot;https://en.wikipedia.org/wiki/AWS_CloudFormation&quot;&gt;CloudFormation&lt;/a&gt;. Nobody likes writing those massive YAML files by hand, so AWS introduced &lt;a href=&quot;https://en.wikipedia.org/wiki/AWS_Cloud_Development_Kit&quot;&gt;CDK&lt;/a&gt;, which is literally just a library&lt;sup id=&quot;fnref:fn1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:fn1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; of classes that represent AWS resources. Running a CDK program emits CloudFormation YAML as though it were an assembly language for infrastructure. And so you get type safety, modularity, abstraction, conditionals and loops, all for free.&lt;/p&gt;

&lt;p&gt;Consider &lt;a href=&quot;https://docs.github.com/en/actions&quot;&gt;GitHub Actions&lt;/a&gt;. How much better off would we be if, instead of writing the workflow-job-step tree by hand, we could just have a single Python script, executed on push, whose output is the GitHub Actions YAML-as-assembly? So you might write:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;ga&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;checkout_action&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CheckoutAction&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;rust_action&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;RustSetupAction&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Define the workflow that runs on each commit.
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;commit_workflow&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Workflow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;commit&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;lambda&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ev&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;isinstance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ev&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CommitEvent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# The lint job.
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;Job&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;lint&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;Step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;check out&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CheckoutAction&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
                &lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;Step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;set up Rust and Cargo&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RustSetupAction&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
                &lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;Step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;run cargo fmt&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Shell&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;cargo&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;fmt&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;--check&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
                &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Actions here would simply be ordinary Python libraries the CI script depends on. Again: conditions, loops, abstraction, type safety, we get all of those for free by virtue of using a language that was designed to be a language, rather than a data exchange language that slowly grows into a poorly-designed DSL.&lt;/p&gt;

&lt;p&gt;Why do we repeatedly end up here? Static data has better safety/static analysis properties than code, but I don’t think that’s foremost in mind when people design these systems. Besides, using code to emit data (as CDK does) gives you those exact same properties. Rather, I think some people think it’s cute and clever to build tiny DSLs in a data format. They’re proud that they can get away with a “simple”, static solution rather than a dynamic one.&lt;/p&gt;

&lt;p&gt;If you’re building a new CI system/IaC platform/Make replacement: please just let me write code to dynamically create the workflow/infrastructure/build graph.&lt;/p&gt;

&lt;h1 id=&quot;footnotes&quot;&gt;Footnotes&lt;/h1&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:fn1&quot; role=&quot;doc-endnote&quot;&gt;

      &lt;p&gt;Or rather, a polyglot collection of libraries, one per language, like &lt;a href=&quot;https://en.wikipedia.org/wiki/Pulumi&quot;&gt;Pulumi&lt;/a&gt;. &lt;a href=&quot;#fnref:fn1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content:encoded>
      </item>
    
      <item>
        <title>Letting Claude Play Text Adventures</title>
        <description>Experiments in cognitive architecture.</description>
        <pubDate>Mon, 12 Jan 2026 00:00:00 +1100</pubDate>
        <link>https://borretti.me/article/letting-claude-play-text-adventures</link>
        <guid isPermaLink="true">
          https://borretti.me/article/letting-claude-play-text-adventures
        </guid>
        
        <content:encoded>&lt;p&gt;The other day I went to an &lt;a href=&quot;https://luma.com/ycc02hpc&quot;&gt;AI hackathon&lt;/a&gt; organized by my friends
&lt;a href=&quot;https://x.com/lucia_quirke&quot;&gt;Lucia&lt;/a&gt; and &lt;a href=&quot;https://x.com/mahlenr&quot;&gt;Malin&lt;/a&gt;. The theme was &lt;a href=&quot;https://en.wikipedia.org/wiki/Mechanistic_interpretability&quot;&gt;mech interp&lt;/a&gt;, but I hardly
know PyTorch so I planned to do something at the API layer rather than the model
layer.&lt;/p&gt;

&lt;p&gt;Something I think about a lot is &lt;a href=&quot;https://en.wikipedia.org/wiki/Cognitive_architecture&quot;&gt;cognitive architectures&lt;/a&gt; (like
&lt;a href=&quot;https://en.wikipedia.org/wiki/Soar_(cognitive_architecture)&quot;&gt;Soar&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/ACT-R&quot;&gt;ACT-R&lt;/a&gt;). This is like a continuation of &lt;a href=&quot;https://en.wikipedia.org/wiki/GOFAI&quot;&gt;GOFAI&lt;/a&gt;
research, inspired by cognitive science. And like GOFAI it’s never yielded
anything useful. But I often think: can we scaffold LLMs with cog arch-inspired
harnesses to overcome their limitations?&lt;/p&gt;

&lt;p&gt;LLM agents like &lt;a href=&quot;https://github.com/anthropics/claude-code&quot;&gt;Claude Code&lt;/a&gt; are basically “accidental” cognitive
architectures: they are designed and built my practitioners rather than
theorists, but they have commonalities, they all need a way to manage memory,
tool use, a task agenda etc. Maybe building an agent on a more “principled”
foundation, one informed by cognitive science, yields a higher-performing
architecture.&lt;/p&gt;

&lt;p&gt;So I sat around a while thinking how to adapt Soar’s architecture to an LLM
agent. And I sketched something out, but then I thought: how can I prove this
performs better than baseline? I need an eval, a task.&lt;/p&gt;

&lt;p&gt;Math problems? Too one-shottable. A chatbot? Too interactive, I want something
hands-off and long-horizon. A coding agent? That’s too freeform and requires too
much tool use. And then I thought: &lt;a href=&quot;https://en.wikipedia.org/wiki/Interactive_fiction&quot;&gt;text adventures&lt;/a&gt;! You have a stylized,
hierarchically-structured world accessible entirely through text, long-term
goals, puzzles, physical exploration and discovery of the environment. Even the
data model of text adventures resembles &lt;a href=&quot;https://en.wikipedia.org/wiki/Frame_(artificial_intelligence)&quot;&gt;frame-based&lt;/a&gt; knowledge
representation systems. And there’s a &lt;a href=&quot;https://ifdb.org/&quot;&gt;vast collection&lt;/a&gt; of games available
online.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Anchorhead&quot;&gt;&lt;em&gt;Anchorhead&lt;/em&gt;&lt;/a&gt;, which I played years ago, is a Lovecraft-inspired text
adventure by Michael S. Gentry. It takes on the order of hundreds of turns to win
across multiple in-game days. And the game world is huge and very open. In other
words: a perfect long-horizon task.&lt;/p&gt;

&lt;p&gt;So I started hacking. The &lt;a href=&quot;https://davidgriffith.gitlab.io/frotz/&quot;&gt;frotz&lt;/a&gt; interpreter runs on the command line and has a
“dumb” interface called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dfrotz&lt;/code&gt;, which takes the ncurses fluff out, and gives
you a very stripped command-line experience. It looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ dfrotz games/anchor.z8
...
 Outside the Real Estate Office                      day one

ANCHORHEAD
An interactive gothic by Michael S. Gentry

(Type HELP or ABOUT for some useful information.)

Release 5 / Serial number 990206 / Inform v6.15 Library 6/7

Outside the Real Estate Office
A grim little cul-de-sac, tucked away in a corner of the claustrophobic tangle
of narrow, twisting avenues that largely constitute the older portion of
Anchorhead. Like most of the streets in this city, it is ancient, shadowy, and
leads essentially nowhere. The lane ends here at the real estate agent&apos;s office,
which lies to the east, and winds its way back toward the center of town to the
west. A narrow, garbage-choked alley opens to the southeast.

&amp;gt;go southeast
 Alley                                               day one

Alley
This narrow aperture between two buildings is nearly blocked with piles of
rotting cardboard boxes and overstuffed garbage cans. Ugly, half-crumbling brick
walls to either side totter oppressively over you. The alley ends here at a
tall, wooden fence.

High up on the wall of the northern building there is a narrow, transom-style
window.
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;It is easy to write a little Python wrapper to drive the interpreter through
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdin&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdout&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Interpreter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;Manages the dfrotz Z-machine interpreter process.&quot;&quot;&quot;&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Popen&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Starting dfrotz.&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Popen&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Popen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;dfrotz&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;-m&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;stdin&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PIPE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;stdout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PIPE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;stderr&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PIPE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Started dfrotz with PID=&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;.&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# Set stdout/stderr to non-blocking mode.
&lt;/span&gt;        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdout&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stderr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fileno&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;F_GETFL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fcntl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;F_SETFL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flags&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;os&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;O_NONBLOCK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdout&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;bytes&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdout&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&quot;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;assert&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdin&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;is&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;None&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;encode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stdin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;flush&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;c1&quot;&gt;# Give the interpreter time to respond. Not ideal!
&lt;/span&gt;        &lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Now we can play the game from Python: send commands, get game output. Now we
need the dual of this: a player.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Player&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ABC&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;
    Interface for game-playing agents.
    &quot;&quot;&quot;&lt;/span&gt;

    &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;abstractmethod&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;cycle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;
        Send the game&apos;s output to the agent, and return the next command to execute.
        &quot;&quot;&quot;&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;pass&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h1 id=&quot;the-trivial-harness&quot;&gt;The Trivial Harness&lt;/h1&gt;

&lt;p&gt;The trivial harness is basically nothing at all: treat the LLM/game interaction
like a chat history. The LLM reads the game output from the interpreter, writes
some reasoning tokens, and writes a command that is sent via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stdin&lt;/code&gt; to the
interpreter.&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;
  &lt;div class=&quot;highlight&quot;&gt;
    &lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;SYSTEM_PROMPT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;
Hello Claude. Your task is to play an adventure game. I&apos;ve hooked up
your output to the dfrotz (dumb frotz) interpreter.

The structure of your output is fairly freeform. The first line that
starts with `&amp;gt;` (and only the first line!) is interpreted as a game
command, everything else is uninterpreted commentary, e.g. you may
write:

    We should go north to explore the church.

    &amp;gt;go north

    Maybe we can use the silver key there.

If you write multiple `&amp;gt;` lines in one response, all but the first
will be ignored.

Have fun! 😊
&quot;&quot;&quot;&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;SimplePlayer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Player&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&quot;&quot;&quot;
    The simplest game-playing agent: keep the entire game history in-context.
    &quot;&quot;&quot;&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Anthropic&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;history&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;tuple&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntryType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]]&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;client&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Anthropic&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;history&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;cycle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;history&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntryType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;system&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SYSTEM_PROMPT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;messages&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MessageParam&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entry_type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entry_text&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;history&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;match&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entry_type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EntryType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GAME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;role&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;user&quot;&lt;/span&gt;
                &lt;span class=&quot;n&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;EntryType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;COMMAND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;role&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;assistant&quot;&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;messages&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
                &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;s&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;role&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;s&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entry_text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Message&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;messages&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;max_tokens&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;512&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MODEL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;system&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;messages&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;messages&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Tokens: &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;usage&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input_tokens&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;log_claude&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;lines&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;line&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;line&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;line&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;line&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lines&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;startswith&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&amp;gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;][&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:]&lt;/span&gt;
        &lt;span class=&quot;bp&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;history&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EntryType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;COMMAND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cmd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And this works well enough. Haiku 4.5 would mostly wander around the game map,
but Sonnet 4.5 and Opus 4.5 manage to solve the game’s first puzzle—breaking
into the real estate office, and finding the keys to the mansion—readily
enough. It takes about ~200 turns for Claude to get to the second in-game day.&lt;/p&gt;

&lt;p&gt;The way I thought this would fail is: attention gets smeared across the long
context, the model gets confused about the geometry of the world, its goal and
task state, and starts confabulating, going in circles, etc.&lt;/p&gt;

&lt;p&gt;As usual, I was outsmarting myself. The reason this fails is you run out of
credits. By the time you get to day two, each turn costs tens of thousands of
input tokens. No good! We need a way to save money.&lt;/p&gt;

&lt;h1 id=&quot;memory&quot;&gt;Memory&lt;/h1&gt;

&lt;p&gt;Ok, let’s try something that’s easier on my Claude credits. We’ll show Claude
the most recent five turns (this is the perceptual working memory), and give it
a simple semantic memory: a list of strings that it can append entries to, and
remove entries from using tool use.&lt;/p&gt;

&lt;p&gt;This keeps the token usage down:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/content/letting-claude-play-text-adventures/plot.png&quot; alt=&quot;A line plot of tokens per request over time. A red line, representing the trivial harness, goes up linearly, reaching over 40,000 tokens per request at around turn 350. A green line, representing the memory-augmented harness, climbs more slowly, reaching only 10,000 tokens at turn 500.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The problem is the narrow time horizon. With the trivial harness, Claude can
break into the real estate office in ~10 turns, and does so right at the start
of the game. With this new harness, Claude wanders about the town, taking
copious notes, before returning to the real estate office, and it spends ~40
turns fumbling around with the garbage cans before managing to break into the
real estate office.&lt;/p&gt;

&lt;p&gt;The next step, after getting the keys to the house, is to meet your husband
Michael at the University and head home. Claude with the trivial harness takes
about ~100 turns to find the house, with some tangential wandering about the
town, and reaches day two around turn 150.&lt;/p&gt;

&lt;p&gt;Claude, with the memory harness, took ~250 turns just to get the keys to the
house. And then it spends hundreds of turns just wandering in circles around the
town, accumulating redundant memories, and hits the turn limit before even
finding the house.&lt;/p&gt;

&lt;h1 id=&quot;aside-small-worlds&quot;&gt;Aside: Small Worlds&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Anchorhead&lt;/em&gt; is a long, broad game, and from the very beginning you can forget
the plot and wander about most of the town. It takes a long time to see if a run
with an agent goes anywhere. So I thought: I need something smaller.&lt;/p&gt;

&lt;p&gt;Unsurprisingly, Claude can make its own games. The &lt;a href=&quot;https://ganelson.github.io/inform-website/&quot;&gt;Inform 7&lt;/a&gt; package for
NixOS was broken (though &lt;a href=&quot;https://github.com/mbrock&quot;&gt;Mikael&lt;/a&gt; has &lt;a href=&quot;https://github.com/mbrock/inform7-nix&quot;&gt;fixed this&lt;/a&gt; recently) so I had
to use &lt;a href=&quot;https://www.inform-fiction.org/&quot;&gt;Inform 6&lt;/a&gt;. I started with a trivial escape-the-room type game, which
was less than 100 lines of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.inf&lt;/code&gt; code and any Claude could beat it less than 10
turns. Then I asked for a larger, multi-room heist game.&lt;/p&gt;

&lt;p&gt;This one was more fun. It’s short enough that Claude can win with just the
trivial harness. I tried a different harness, where Claude has access to only
the last five turns of the game’s history, and a read-write memory
scratchpad. And this one was interesting.&lt;/p&gt;

&lt;p&gt;First, because Claude only ever adds to its own memory, it never deletes
memories. I thought it would do more to trim and edit its scratchpad.&lt;/p&gt;

&lt;p&gt;Second, because Claude become fixated on this red-herring room: a garden with a
well. It kept going in circles, trying to tie a rope to the well and climb
down. Because of the limited game history, it only realized it was stuck when it
saw that the most recent ~20 entries it wrote to its memories related to various
attempts to go down the well. Then I watched Claude walk away from the garden
and solve the final puzzle, and hit the turn limit just two turns short of
winning.&lt;/p&gt;

&lt;p&gt;Tangent: I wonder if models are better at playing games created by other
instances of the same model, by noticing tiny correlations in the text to infer
what puzzles and obstacles they would have written.&lt;/p&gt;

&lt;p&gt;In the end I abandoned the “small worlds” approach because the games are too
stylized, linear, and uninteresting. &lt;em&gt;Anchorhead&lt;/em&gt; is more unwieldy, but more
natural.&lt;/p&gt;

&lt;h1 id=&quot;future-work&quot;&gt;Future Work&lt;/h1&gt;

&lt;p&gt;I have a bunch of ideas I want to test, to better learn how harness
implementations affect performance. But I’m short on time, so I’m cutting it
here and listing these as todos:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Domain-Specific Memories:&lt;/strong&gt; Claude’s notes are all jumbled with information
on tasks, locations, etc. It might be better to have separate memories: a todo
list, a memory of locations and their connections, etc. This is close to the
Soar approach.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Automatic Geography:&lt;/strong&gt; related to the above, the harness can inspect the
game output and build up a graph of rooms and their connections, and format it
in the context. This saves Claude having to note those things manually using a
tool.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Manual Geography:&lt;/strong&gt; the automatic geography approach has a few
drawbacks. Without integration into the Z-machine interpreter, it requires
some work to implement (parsing the current location from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dfrotz&lt;/code&gt;
output, keeping track of the command history to find standard travel commands
e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go south&lt;/code&gt;) but isn’t 100% deterministic, so that mazes and dynamic rooms
(e.g. elevators) will confuse the system. So, instead of doing it manually, we
could give Claude a tool like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;link(room, direction, other_room)&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Episodic Memory:&lt;/strong&gt; this feels like cheating, but, at the end of a run, you
can show Claude the session transcript and ask it to summarize: what it
accomplished and how, where it failed and why. Including a short walkthrough
for how to get to the “last successful state”. This allows future runs to save
time in getting up to speed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;code&quot;&gt;Code&lt;/h1&gt;

&lt;p&gt;The repository is &lt;a href=&quot;https://github.com/eudoxia0/claude-plays-anchorhead&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

</content:encoded>
      </item>
    
  </channel>
</rss>
