Experimenting when implementation is free

Agentic coding has made a working implementation cheap enough that I can use it to test an idea. When a direction could go several ways, I often build several versions: different models or prompts against the same task, two implementations of a feature, or competing product flows. The repeated versions of Maverick and the eventual extraction of its reusable agent plumbing into Voxelbox came from this habit. I wrote separately about why I stopped getting attached to any one implementation.

Git worktrees make the comparison practical. Each attempt starts from the same repository with one assumption changed. They share history while keeping their files and branches separate, so the experiments can overlap without corrupting one another.

The process can also be recursive. I compare the first set of results, carry the strongest pieces into another worktree, and run the next set of choices from there. A model experiment can lead to a different workflow; a product-flow experiment can reveal a better software boundary. I stop when the differences stop teaching me anything.

By February, the agents and I had repeated this often enough to make it explicit. We built an experiment record into the system: each one keeps its question, its starting point, and the evidence behind the decision to merge, revert, or try again. We no longer had to reconstruct the purpose of an attempt from a branch name and a chat transcript.

That record is what turns several implementations from duplicated effort into an experiment I can learn from.

AI/MLEngineering