Demo Illusion
Your agent one-shotted a bill splitter this morning. It works — you watched it work. Ship it Friday?
The one-shot — fresh from the agent
Split any bill in seconds.
Rosa's phone ends here — everything past the dashed line doesn't exist for her.
Who used it, and what they got
Nobody yet. Run the demo — it's a good demo.
Survived: 0 of 0 users
Every product you've ever seen demoed felt like this one is about to feel.
Every failure, rewritten as one plain sentence
- Any input that isn't a number gets a polite message — never NaN.
- Zero or missing people explains itself — nothing divides by zero.
- Negative amounts are refused in words, not invoiced.
- Absurd totals get a sanity check before they get arithmetic.
- Readable and usable on a phone held in one hand.
That list is what "done" actually meant all along. Writing it after the strangers arrive is damage control. Writing it before the demo is Lab 2. Writing it before the build is Lab 3 — and by then it has a name: a spec.
Was the toy cheating? No — every user typed into the real app above, and this is its entire brain, exactly as a one-shot wrote it:
var each = parseFloat(total) / parseInt(people); result = "$" + each.toFixed(2) + " each";
It divides. That's all it does, so that's all it can defend. The lesson: "it works" means "it worked for me, once, used the way I imagined." A product is the version that survives everyone else — and the distance between the two is not code, it's judgement: watching strangers, naming failures, defining done.