🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.
Open menu
Switch to Darkhello@product.inc

Runs need a shelf

Tags: history, comparison, versions

A reverse-chronological list answers what happened. The question people actually have is which of these is best β€” and that one cannot be answered from a list, because comparison requires adjacency and a list only ever gives you one thing at a time.

A list biases the outcome it was meant to record

A person can hold one artifact in working memory. Not two. So a list asks them to remember the one above while reading the one below, which nobody can actually do β€” and the resolution is always the same: they take the most recent.

That is the real cost, and it is worth stating plainly. You generated eight options and recency picked the winner. The model explored the distribution, the interface threw the exploration away, and the product reports this as a feature because all eight are still there if anyone wants them.

Nobody wants them, because wanting them would mean doing the comparison by hand.

What a shelf needs that a log does not

The log falls out of that for free. Build the comparison and you have the history; build the history and you have nothing.

When a shelf is the wrong build

Rendering diagram…

The bottom branch is easy to miss. A shelf of attempts is a shelf of data, and every attempt carries whatever was in its input. A product that accumulates forty generations per user per day is accumulating forty prompts per user per day, which becomes a retention question and sometimes a disclosure one.

Grounded in

User Study's session stack, built for moderators running back-to-back multi-angle research sessions β€” phone screen, workspace, and the assistant under test, recorded across a study.

The recordings are many attempts at the same shape of thing, and the design problem was never storage. It was keeping a study scannable across all of them: a moderator coming out of the fifth session needs to find the moment in the second where something went differently. That is a comparison requirement, it produces a different interface from a file list, and the session stack is what it produced.

Anti-patterns

The smallest version worth building

Show the last few attempts side by side, each with the input that produced it and a button that says keep this one.

That is the entire pattern. The log you already have; what is missing is the row.