Hacker News new | ask | show | jobs
by codazoda 111 days ago
> What really matters is how well does the code performs 1 month after it goes live, 6 months, 5 years.

After 40 years in this industry—I started at 10 and hit 50 this year—I’ve developed a low tolerance for architectural decay.

Last night, I used Claude to spin up a website editor. My baseline for this project was a minimal JavaScript UI I’ve been running that clocks in at a lean 2.7KB (https://ponder.joeldare.com). It’s fast, it’s stable, and I understand every line. But for this session, I opted for Node and neglected to include my usual "zero-framework" constraint in the prompt.

The result is a functional, working piece of software that is also a total disaster. It’s a 48KB bundle with 5 direct dependencies—which exploded into 89 total dependencies. In a world where we prioritize "velocity" over maintenance, this is the status quo. For me, it’s unacceptable.

If a simple editor requires 89 third-party packages to exist, it won't survive the 5-year test. I'm going back to basics.

I'll try again but we NEED to expertly drive these tools, at least right now.

2 comments

I don't understand. You specifically:

> neglected to include my usual "zero-framework" constraint in the prompt

And then your complaint is that it included a bunch of dependencies?

AI's do what you tell them. I don't understand how you conclude:

> If a simple editor requires 89 third-party packages to exist

It obviously doesn't. Why even bother complaining about an AI's default choices when it's so trivial to change them just by asking?

My main point is that we need to expertly drive these tools. I forgot the trivial instruction and ended up with something that more closely resembles modern software instead of what I personally value. AI still requires our expertise to guide it. I'm not sure if that will be the case in a year, but it is today.
You seem intelligent so it is probably confusing to many why you are posting this.

You call it a trivial instruction, but it is not trivial. It was a core requirement for your own design that you neglected to specify. This is not different than leaving out any other core requirement for a engineering specification.

Most people would NOT want this requirement. Meaning most people wouldn't care if there are package dependencies are not, so the agent 100% did the right thing.

I always tell Claude, choose your own stack but no node_modules.

What's missing is another LLM dialog between you and Claude. One that figures out your priorities, your non-functional requirements, and instructs Claude appropriately.

We'll get there.

This perhaps reflects the general divide in viewpoints on “vibe-coding”. Do you let go of everything (including understanding) and let it rip, or require control and standards to some degree. Current coding agents seem to promote the former. The only way with their approach, is to provide them with constraints?
> What's missing is another LLM dialog between you and Claude. One that figures out your priorities, your non-functional requirements, and instructs Claude appropriately.

There are already spec frameworks that do precisely this. I've been using BMAD for planning and speccing out something fairly elaborate, and it's been a blast.