Part II: How Do I Work With This Thing?

The Slot Machine

I built a website in one sitting last week. Four hours, maybe five. The agent wrote the HTML, generated the nginx config, fixed the broken links, deployed the whole thing. I'd type a prompt, watch the spinner, get a result, steer it, type another prompt. At some point I looked up and it was 2am. I wasn't tired. I wasn't done. I was in it.

The next morning I looked at what I'd shipped and it was genuinely good. Real work, real pages, real progress. But the session had gone two hours longer than it needed to. The last hour wasn't productive. It was me chasing the feeling of the third hour, when everything was landing. I kept prompting not because the work needed it, but because the rhythm felt too good to stop.

That feeling has a name, and it's older than computers.


B.F. Skinner figured out in the 1950s that the most addictive reinforcement schedule isn't constant reward. It's variable-ratio reward — where the payoff comes, but you can't predict when. A pigeon on a fixed schedule pecks steadily. A pigeon on a variable schedule pecks frantically, and keeps pecking long after the food stops coming. Skinner said he could turn a pigeon into a pathological gambler. He wasn't kidding.

Slot machines run on exactly this schedule. You pull the lever, you wait, sometimes you win. The wins are random. The near-misses — two cherries and a lemon — are more motivating than clean losses because you can see how close you were. The machine doesn't need to pay out often. It needs to pay out unpredictably.

Now look at an agentic coding session. You type a prompt. You wait. Sometimes the agent nails it — clean code, first try, exactly what you wanted. Sometimes it confidently builds the wrong thing and you spend twenty minutes chasing the fix. The rewards are intermittent. The waits are variable. The near-misses are constant: it got 90% right but botched the last detail, and you can see the correct output, almost. One more correction. One more prompt.

This is not a metaphor. It is structurally the same reinforcement schedule.


Nir Eyal's Hooked model breaks the addiction loop into four stages: trigger, action, variable reward, investment. Agentic coding maps to all four.

The trigger is an idea, a bug, a TODO — something you want to exist that doesn't yet. The action is typing a prompt. The variable reward is the output: sometimes magic, sometimes garbage, always uncertain. And the investment is everything you've built up during the session — the context window, the conversation history, the half-finished project state. That investment loads the next trigger. You don't stop because stopping means losing the context. Each cycle primes the next one.

Natasha Dow Schüll spent fifteen years studying slot players in Las Vegas for her book Addiction by Design. She found that experienced gamblers weren't playing to win. They were playing to stay in what she calls the machine zone — a trance state where daily worries fade, time disappears, and the mechanical rhythm of the game becomes its own reward. They'd play until physical exhaustion. Some wore adult diapers so they wouldn't have to leave the machine.

I haven't worn a diaper to a coding session. But I've skipped meals. I've ignored the time. I've felt that specific numbness where the prompt-wait-result loop becomes self-sustaining and the work stops being the point. The zone is the point. The zone is always the point.


In 2026, Rachel Thomas at fast.ai wrote a piece called "Breaking the Spell of Vibe Coding" that gave the cost a number. She cited a METR study — a proper randomized controlled trial — where developers using AI tools believed they were 20% faster while actually being 19% slower. That's not a rounding error. That's a 40-point gap between what the experience feels like and what it actually produces.

Csikszentmihalyi, the psychologist who defined flow, drew a line late in his career between real flow and what he called junk flow. Real flow makes you grow. The challenge matches your skill, the feedback is clear, you come out the other side better than you went in. Junk flow feels like flow but is actually "something that you become addicted to instead of something that makes you grow." The experience is engaging. The growth is missing.

Agentic coding can be either one. When you're steering well — catching mistakes, learning the architecture, understanding why the agent chose what it chose, building judgment about when to intervene — that's real flow. You're growing. The tool is making you better.

When you're re-prompting the same failing test for the fourth time because it almost worked, chasing a fix you don't understand into code you can't read, staying in the session because the rhythm is comfortable and the alternative is thinking about what you're actually trying to build — that's junk flow wearing flow's clothes.


The honest thing to say is that both things are true at once. Agentic coding is genuinely amazing and the reward schedule is engineered — by accident, not by design — to make it feel more amazing than the output warrants. You're building real things. You're also sitting at a slot machine. The fact that the slot machine occasionally pays out a working website doesn't change the structure of the game.

Knowing this doesn't make it stop. That's the whole point of variable-ratio reinforcement — understanding the schedule doesn't extinguish the behavior. Skinner's pigeons didn't stop pecking when you explained the lever to them. But knowing it gives you something: the ability to notice when the prompting stops moving the work and starts just sustaining the feeling.

Here are the tells I've found:

You're prompting to get the hit, not to move the work. The distinction is felt, not logical. When you're moving work, each prompt has a specific goal and you evaluate the output against that goal. When you're chasing the hit, you're prompting because the alternative — stepping back, thinking, doing something else — feels worse than the loop.

The session has outlived its usefulness but you haven't stopped. The first three hours were productive. The fourth hour was maintenance. The fifth hour was the zone. If you can't articulate what the last hour produced that the previous hours didn't, you were playing the machine.

You're avoiding the hard part by doing the easy part faster. The agent is great at generating code. It's less great at telling you whether the code should exist. When you find yourself building features to avoid deciding which features matter, the velocity is a decoy.

You're re-prompting instead of thinking. If the agent got it wrong twice, a third prompt with slightly different wording is usually not the move. The move is to close the laptop, go for a walk, and come back with a clearer picture of what you actually want. The walk is worth more than the prompt. It always is.


The antidote isn't discipline. Discipline fails against variable-ratio reinforcement — that's why casinos are profitable. The antidote is structure that makes the cost visible.

A devlog forces you to write down what you shipped. If the entry is thin, the session was thin, no matter how it felt. A daily briefing reads yesterday's output back to you before today's work begins — a sobriety check against the dopamine. Version control timestamps show you exactly how long things actually took, not how long they felt like they took. Tests tell you whether the code works, not whether the experience of writing it was satisfying.

These aren't productivity hacks. They're the rebar that keeps the slot machine honest. The wall of data, the briefing, the commit log — they all do the same thing: force a comparison between what the session felt like and what it produced. When those two things match, you were in real flow. When there's a gap, you were in the zone.

The machine zone is comfortable. Real work often isn't. The gap between the two is where the hours go, and the only way to see the gap is to measure from the outside — because from the inside, the zone feels exactly like the best work you've ever done.


← The Conductor