As some of you know, I embraced vibe coding, much to the chagrin of my trad coding team. I’ve been vibing on DoltLite, SQLite with version control, almost continuously for almost two months now. I started with Gas Town but have settled into a dueling-agents setup that works best for where I’m at with DoltLite.
The speed of vibe coding progress is intoxicating. Software that would have taken months or years to build can be built in weeks. Anyone embracing the vibe is still learning best practices. The tools change so frequently that constant learning is required. I’m eager to pass along what I learn.
One thing I learned that seems counter-intuitive is code comments seem to hurt agents more than help. This article explains.
Aaron Always Hated Comments#
Fun fact: DoltHub’s co-founder Aaron and I have worked together for over 20 years. For as long as I remember, Aaron had a big brain take on code comments. Don’t write them.
As far as I can tell, Aaron’s anti-comment logic rested on these three principles:
- If you can’t read the code, change the code to be more readable.
- If you can’t read the code, you shouldn’t be editing it.
- A bad or stale comment is worse than no comment.
So avoid comments. To Aaron, a comment was a signal of bad code. To the rest of us, a comment is a helpful hint. Aaron understood coding agents before they existed.
Comments Confuse Agents…#
Aaron’s three principles seem prescient in the vibe coding era. The code reader is an agent, not a human.
- If you can’t read the code, change the code to be more readable
Agents have the same problem with dense code that humans do. If your agent needs a comment to know what processData(x, 2, true, null) does, the agent should rename the arguments. Comments paper over code that doesn’t read well. Better code needs less context. Plus, code compiles so you have an extra layer of verification to make sure code doesn’t drift.
- If you can’t read the code, you shouldn’t be editing it.
Comments are tokens. Every // save the file above a fs.writeFile() crowds out actual code in the agent’s finite context. Fewer comments, more code in context, better understanding.
- A bad or stale comment is worse than no comment.
This one is brutal for agents. With vibe code, nothing verifies comments so comments are more likely to drift. A // validates input before write is a landmine after the validation got ripped out six commits ago. Or // returns true on success above a function that actually returns true on failure. The agent writes if (didThing()) { ... } for the happy path and gets the unhappy one. Confounders are bad for humans but especially paralyzing for agents. Enough confounders and you’ll get bad vibe code every time.
Coding agents have two enemies: limited context and confounding information. Comments can be both.
…But Agents Write Lots of Comments#
Yet somehow, agents write a ton of comments, especially Claude. Here’s an example from DoltLite. An agent can certainly infer this from the code.
/* Merge-base by set-intersection BFS: walk commit1's ancestry in full,
** then BFS commit2 and return the first hash that appears in the
** ancestor set. Fine for shallow histories; for Git-style "lowest"
** LCA on deep merges the right algorithm is both-sides BFS with
** generation numbers, but Dolt's merge semantics accept any common
** ancestor produced here. */
Agents are currently tuned for trad code not vibe code. A human is the audience for the code produced, not other agents. Humans like comments. Typing is essentially free for agents. So you get a lot of comments even though for vibe coded projects, no human ever reads the code. These comments build up and drift over agent sessions, making your agents perform worse.
Have an Agent Remove Comments#
There’s a simple solution to this problem. Every once in a while, I have an agent mass delete all comments, re-read the code, and add back “essential” comments.
Here is the prompt I used. This time I used Codex, GPT-5.5, which in my experience is the least verbose agent right now.

Obviously, at first, Codex did the least, only re-inserting comments in four files. I’m continuously surprised with agentic effort minimization.
With a bit of additional prompting, we eventually got there. 9,359 comment lines removed. 193 comment lines added back.
Specifically, I asked Codex to explain its logic for file header comments. Sounds like Aaron.

My dueling agents are performing better after the great DoltLite comment culling of May 11, 2026. Context is smaller and there are far fewer confounders. You’re absolutely right.
Conclusion#
Aaron has hated comments for years. He may be more agent than human.
Vibe coders unite! Delete your comments. Comments are for trad coders. Join the vibe code movement on our Discord. We hang out in the #doltlite🪶 channel.

