Hacker News new | ask | show | jobs
by lukev 437 days ago
Here's the thing. What you're doing when you're vibe coding is iteratively creating specifications for software, which the LLM is capable of converting to runnable code. Insufficient specs will lead to code that doesn't do the right thing.

Chat is fundamentally the wrong interface for this. My instructions to the LLM in a chat session are effectively the software specifications, but chat encourages to treat them as ephemeral.

It's analogous to writing code in a high-level language, then deleting the code after it's compiled and keeping only the low-level bytecode.

In the case of vibe-coding, my specifications to the LLM _are_ the code, and the LLM-emitted code is a _artifact_ that can in principle be discarded and re-generated, assuming my specs are precise enough to ensure consistent outputs (the nondeterminism of LLMs is definitely a issue here.)

So I want tools that let me persist my specs, help me iterate on them, check them into version control, and help me test how the LLM interprets them. Not a chat.

2 comments

You can do that.

Just write your specs in markdown files (or formal specification formats) in your repo and instruct the LLM to update them in the process.

In fact, you can just work on specs like this. Vibe speccing, I guess?

This is Userdoc, AI augmented software requirements.
Except most LLMs are not deterministic, the same prompt will, in general, produce different outputs because the sentence completion ist statistical and randomly selected
Developers are not deterministic either ;-)

What matters is if the current output after each request complies with the given specifications, and if it's possible to solve the bugs until the code converges into stability.