Attention is all you have
On 20 October 2026 I felt late. I’d just seen a colleague working on a factory for his own internal product. Everyone seemed to be talking about software factories, and I was still spending my days moving between Slack, a ticket board, GitHub, CI and a pile of agent threads. Agents were writing more of my code than ever, and somehow I had less attention left than before.
The next day Syntax released its episode on software factories with Adam Jacob, who makes swamp (1049: WTF is a Software Factory?). I watched it, and everything clicked. If agents can automate almost anything, the thing worth automating first is whatever drains my attention. It gave me a motto: attention is all you have.
Since then I’ve built the same idea three times. Each one taught me what not to build.
One: a dashboard
The first version was a dashboard. It pulled every source into one screen: what’s waiting on me, what broke, what changed since yesterday.
It looked great. Then I hit the obvious wall. A dashboard shows you the problem. You can’t click a button that says “resolve this”. Every card still ended with me opening a tab and doing the work.
Two: a voice assistant
I already talk to my agents through voice-to-text, so the second version was voice first. I’d speak, it would sort what I said into tasks, ask one short question at a time, and go off and do the work.
This is where I learnt the most. I measured every stage: speech to text, the model, the voice coming back. I ran evals on whole conversations and hill climbed on turn-taking. In one day the gap between my last word and its reply went from 4.9 seconds to about 3.
The surprise was that the biggest win wasn’t a faster model. People don’t talk in monologues. We say a couple of things, pause, get pushed back on, carry on. The assistant kept guessing when I’d finished, and it guessed wrong mid-thought. A push-to-talk button fixed that. Nothing to guess: it started speaking in under a second, and the best real answers came in about 1.5. It felt far more fluid.
The average stayed high, though, and every further cut cost something. Faster models answered worse, and ending my turn sooner cut me off mid-thought. The shape of the conversation mattered more than the model.
But when I dogfooded it, I didn’t reach for it. It wasn’t how I wanted to work.
Three: a factory on swamp
The third version runs on swamp. It’s a set of workflows that read the same sources, cross-reference them, and take on the parts of my job that are really just routine.
My first instinct was wrong. I thought I could describe a workflow to an agent, every case at once, and it would work out the branches itself. It can’t, not well. A workflow has to start almost embarrassingly simple: one trigger, one job, one result I can check. The cases come later, one at a time, when something real breaks. I only learnt that by building big ones and watching them fall over.
The part I’m proudest of is how it learns. It reads my conversations with agents and looks for the moments I corrected one. Each correction becomes a proposed rule that has to quote what I actually said. Nothing goes live until I approve it, as one line I can revert. Where it can, it replays the old situation with and without the rule and has a blind judge compare the two. After that, it counts whether the mistake comes back.
One example: an agent told me it had taken a screenshot. There was no file. The rule that came out of it is one line: never say you took a screenshot unless the image exists, and name its path. The first time I pointed it at my history, it read 196 conversations. I kept 66 lessons and threw out 18 as duplicates or wrong.
I’ll be honest: swamp didn’t click for me straight away. But the more I used it, the more I loved it, mostly because I stopped writing my own plumbing.
The agent chat was the front door all along
Even with the factory working, I kept going back to the same place: talking at my agents in T3 Code. It isn’t a harness, it’s an interface over Claude Code and Codex, but it’s one hell of an interface, and it has become my daily driver.
So I stopped competing with it. Building yet another UI for agents, next to the UI I already use for agents, was the wrong fight. The factory isn’t the front door any more. It sits one level up. I give my agent one long brief, it pulls out the links, actions and questions, starts the right workflow for each, and the results come back into the same thread.
That meant giving up the one screen that runs everything, which was the original idea and a lot of my work. But a design that fights how you actually work is the wrong design, however good it looks.
What I’d tell myself on 20 October
- Watch how you work before you design for it. The signs were there from the start.
- Don’t rebuild the loop that already works. Abstract above it.
- Start every workflow small. Let real failures add the cases.
- Measure. The voice numbers changed my mind more than any opinion did.
The hardest part of these three weeks wasn’t building. It was letting go of the idea I liked most, because it didn’t fit how I work.
A lot of the talk about AI right now is gloomy: what it replaces, who it replaces. These three weeks did the opposite for me. Nobody has good answers yet about how factories should work, and I haven’t been this excited about building software in years.