The Vibe Coding Labyrinth
"Just a few more tokens"
I click ‘agent mode’ and submit the prompt. My terminal churrs and green blocks of code pour onto the screen — frontend components, controllers, environment variables… everything. A working prototype in under a minute.
“This is incredible,” I think, as I cross the threshold.
1.
I move slowly at first— not out of fear, but to admire the pristine folders and files. The technology has come such a long way.
“Wow, he’s thought of that module too. I didn’t even need to ask for it.”
New knowledge lures me deeper:
“Oh? This is how you can smuggle a Python binary into a Mac app? …I didn’t know Apple allowed that. Very cool.”
2.
It’s been an hour.
I congratulate myself for having the wisdom to balance instructions with questions — I’m going to learn so much.
“Make this change… now explain this pattern to me.”
It’s a partnership. Progress is so fast I barely even need to edit — just provide directions and review the changes. We move faster.
“Float this element to the right...”,
“When the user presses this, make sure the state updates as follows...”,
“No, not quite like that — like this…”
Claude can do anything. This project will be finished in no time.
3.
He’s really churning out the code now. Since every change is so small, there’s no need to review. I’ve stopped asking questions, I have the gist of the code now.
It’s been a few days (time flies), but we’re making great progress.
4.
“Wait. Haven’t we been here before?”
I’m definitely not lost… but admit there have been …issues.
Claude’s lost the thread a few times, and there have been one or two lapses in judgement. Minor difficulties, nothing serious.
I’ll adjust the model version and add tests. Automated tests will solve everything.
…Though really, probably best if he writes them. He knows the codebase, after all.
5.
More setbacks, but it’s fine. It’s been barely two weeks and the app is basically working.
I understand his limits now, and can take control. I’m not frustrated, but will be more rigorous from now on: detailed prompts and meticulous acceptance criteria.
I even smile — this is almost like pre-agile software development.
Every change now comes with its own git commit and documentation file.
I’ll definitely read these.
6.
I’m lost, again. When did this start?
It’s fine though, the app is almost finished.
I’ll just dive into the code myself to see what the trouble is.
Yes, it’s as I expected: the code is too complicated. He should not have made it so complicated.
I’ll ask for an analysis and refactor. “— please.”
Disable tests? …Well, I suppose that’s okay. ‘Allow.’
7.
I was nearly ready to release, but there’s been another snag.
Turns out that major architectural decision was a mistake.
How frustrating. This must be the third time — remember the Apple binaries debacle?
I did question it at the time, but it was so confident.
Maybe I’ll switch models again.
I just need to coax it into rebuilding the backend from scratch, again.
8.
It’s been a month.
The code is an abomination. Our sessions alternate between begging and berating. I’ve lost count of refactors. I don’t know how to escape.
I look at the latest regression and ask, bewildered:
“Why has this broken again? I thought you fixed it? It’s a mess.”
The terminal whirrs.
SCP-LLM replies:
“You’re absolutely right. We should refactor.”
I can also be found at: connell.io | LinkedIn | Twitter



Great post Connell. A very familiar story: The initial excitement of using Replit the incredible speed of building a prototype followed by the inevitable refactoring. Though it is incredibly satisfying when it works.