← Latest papers
💻 computer science

Where Did the Variability Go? From Vibe Coding to Product Lines by Regeneration

This paper proposes "Variability by Regeneration" (VbR), a novel software product line approach where an LLM acts as a derivation engine to generate purpose-built, dead-code-free binaries at generation time based on declarative specifications, effectively shifting variability management from the code itself to the specification in the era of AI-driven "vibe coding."

Original authors: Xhevahire Tërnava

Published 2026-06-19
📖 5 min read🧠 Deep dive

Original authors: Xhevahire Tërnava

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

The Big Problem: The "Magic" Code That Can't Change

Imagine you hire a super-talented chef (an AI) to cook you a meal. You tell them, "I want a spicy pasta." They instantly cook a perfect, steaming plate of spicy pasta.

Now, imagine you want to change your mind and say, "Actually, make it mild." In traditional cooking, you would just ask the chef to adjust the spices. But in this new style of cooking (called "Vibe Coding"), the chef doesn't just adjust the spices; they throw the whole plate away and cook a brand new plate from scratch based on your new request.

The problem is that the first plate of spicy pasta is now useless to you. You can't turn it into mild pasta. It's a "single-purpose" artifact. If you want a different version of the software, you have to ask the AI to generate a completely new file every time.

The Discovery: Where Did the "Options" Go?

The researchers looked at 10 different software projects created this way. They found something surprising: The "options" disappeared.

In old-school software, the code is like a Swiss Army knife. It has a blade, a screwdriver, and a corkscrew all built in. You just flip the switch (a setting) to use the tool you need. The code contains all the tools, even the ones you aren't using right now.

But in "Vibe Coding," the AI doesn't build a Swiss Army knife. It builds a single-purpose tool.

  • If you asked for a knife, the AI builds a knife.
  • If you asked for a screwdriver, the AI builds a screwdriver.
  • The "knife" version has no screwdriver parts inside it, and the "screwdriver" version has no knife parts.

The researchers call this "near-zero variability." All the decisions about what the software is are made the exact moment the AI writes the code. Once the code is written, it's frozen. There are no switches left to flip.

The Solution: "Variability by Regeneration" (VbR)

Instead of trying to force the AI to build a giant, complex Swiss Army knife (which makes the code messy and hard to understand), the authors propose a new way to handle this called Variability by Regeneration (VbR).

Think of it like a Custom Suit Shop vs. a Department Store.

  • The Old Way (Department Store): You buy a suit that has extra fabric sewn in, buttons you don't need, and pockets you'll never use, just so you can "configure" it later. It's heavy and full of dead weight.
  • The VbR Way (Custom Suit Shop): You have a Master Blueprint (a specification).
    1. You tell the shop: "I need a suit for a wedding."
    2. The AI (the tailor) looks at the blueprint and instantly sews a perfect, lightweight suit just for that wedding. It has no extra fabric.
    3. Later, you say, "I need a suit for a beach party."
    4. The AI doesn't try to cut the wedding suit down. It looks at the blueprint again and sews a brand new, perfect beach suit.

In this system, the "variability" (the ability to have different suits) doesn't live in the clothes themselves. It lives in the Blueprint.

How It Works in Practice

The paper demonstrates this with a classic computer tool called wc (which counts words in a file).

  1. The Blueprint: The developer writes one simple file (a YAML file) that lists all the possible features: "Count lines," "Count words," "Count characters," etc.
  2. The Generation: When a user wants a specific version (e.g., "I just want to count lines"), the AI reads the blueprint, sees that request, and generates a tiny, super-fast program that only does that one thing.
  3. The Dispatcher (The Waiter): Since the AI made three different programs (one for lines, one for words, one for everything), how does the computer know which one to run?
    • The researchers built a "Waiter" (a dispatcher).
    • You type a command. The Waiter looks at your command, checks the menu (the manifest), and instantly runs the specific program that matches your request.
    • You, the user, never see the different programs. You just see one tool that magically changes its behavior.

Why This Matters

The authors argue that we shouldn't try to fix "Vibe Coding" by forcing the AI to put "switches" back into the code. That defeats the purpose of the new technology.

Instead, we should accept that the code is meant to be disposable and specific.

  • Old Way: Keep one big, messy code file with all the options hidden inside.
  • New Way (VbR): Keep one clean specification file (the rules), and let the AI generate a fresh, perfect, "dead-code-free" program every time you need a different version.

Summary

The paper claims that in the age of AI coding, we have lost the ability to "tweak" a single program. Instead, the AI creates a new program for every need. The authors propose we embrace this by treating the rules (specification) as the permanent master, and the code as a temporary, perfect product that is regenerated whenever the rules change. It's not about fixing the code; it's about regenerating the right code for the right job.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →