For fifteen years, the commit has been the atom of software history. A diff, a message, an author, a timestamp. It told you what changed. It rarely told you why, and it never told you how the change was actually produced.
That gap was tolerable when a human typed every line. It is not tolerable now. When an agent writes a 600-line refactor from a three-sentence prompt, the diff is the least interesting artifact in the room. The prompt is the source. The spec is the intent. The model and its config are the compiler.
The code is downstream of the prompt
If you can regenerate the code from the prompt, then the prompt — not the code — is what you should be versioning, reviewing, and forking. The code becomes a build artifact, the way a compiled binary is downstream of source.
“Reviewing AI-generated code without seeing the prompt is like reviewing a binary without the source.”
What a vibe captures
A vibe is the full context that produced a change, bundled into one versioned object:
- The spec — what you asked for, in plain language.
- The prompts — every message exchanged with the agent.
- The diff — the code that actually changed.
- The eval — how you verified it does what the spec says.
- The config — model, temperature, tools, and seed.
Why bundle them?
Because they only make sense together. A diff without its prompt is unreviewable. A prompt without its eval is unverifiable. A spec without its config is unreproducible. VibeHub keeps them in one object so the next person — including future you — inherits the whole story, not a fragment of it.
The commit told you what changed. The vibe tells you what you meant, how you asked, and how to do it again. That is the new unit of work.



