Four Levels of AI Coding

I’ll make one assumption. You, like me, have multiple newsletter subscriptions. And it’s not like you never read any of it. But there are so many articles I would like to read that it becomes overwhelming. You then start to bookmark only the ones worth reading, but again, that pile just grows and grows.

So like you, I found myself with a list of newsletters which I don’t want to give up. Partially because of FOMO, and partially because I love to learn new things.

Last week I found myself pondering about what is the best way to filter only the best articles to read. Then how to save them so I can read them in a distraction-free zone, no device with internet.

The Experiment

So I dug up my old Mac Mini M1. Installed a clean OS, Claude Code, and allowed SSH. Then over a few days I let Claude install a local LLM for parsing and scoring email links. Then we set up logic that would score articles based on my reading preference and interests. All those articles that made it are now sent to Readwise, which I can link to Kindle. So I found myself sitting in my reading chair with Kindle in hand, distraction-free. And I love it.

Then I updated my Claude setup so it acts as an agent, so I don’t have to confirm every code change all the time. And it took off from there.

Just through iMessage, I built a dashboard for completed tasks, a token use graph with billing, and a VPN tunnel so I can access my local machine from anywhere.

Those two approaches, where I vibe first, and then just let Claude do whatever without bothering to check the code.

The Kicker

And here is the kicker. At work I would not use either of these approaches. I need to see the code, drive the change, make architecture decisions. I would use AI as a tool that writes the code itself, but I’m the one who tells it where and when to write it.

Because I can’t afford to lose the context of the code I ship. The comprehension debt that would be created would be hard to catch up with. When you vibe code a feature and then have to debug it, you lose that comprehension, that idea, that mind map of the code that lives in your head when you’re coding something, is simply not there or has missing gaps after just using AI to write the code.

That’s fine if you are using it for fun and don’t care how the code looks and it’s just a random script that can be easily replaced or deleted. If you have a big system that’s in production and people rely on it, you need to move fast. Losing the comprehension of it threatens the speed of your debugging.

The Four Levels

I don’t think there’s just vibe coding and coding. I think there are four levels:

1. Coding without AI 2. Architect mode – you are the architect and overseer, and AI is just writing the code that you then review and make sure it does what it is supposed to 3. Vibe coding – AI just writes the code; you look that it roughly does what you expect, and you don’t care about design much 4. Output-only – you don’t care at all what the AI writes; you just care about the output

Of course, it really depends on what your end goal is. But as a professional developer, I need my code to be reliable, testable, and easily fixed. Something that AI just writes without me checking it is not something I will be able to accept and push to production. Nor should I be expected to.