Vibecode build plans · № 5

Build an expense splitter

One trip, one file, no accounts — a plan you can paste into your agent, with the money math traps marked.

A bill splitter is a deceptively good vibecode. The interface is trivial — a list of who paid what — but the moment you press "settle up," you are doing the one thing software is supposed to be good at and people are famously bad at: making the numbers actually balance. That's where the build earns its keep, and where an unsupervised agent will quietly get it wrong.

This plan is opinionated. It steers your agent away from the failure modes that make a splitter feel authoritative while being subtly incorrect — floating-point cents, transfers that multiply, the dropped remainder that leaves someone owing a phantom penny — and toward the thing that matters when real money is on the line: a settle-up your friends will trust.

The spec — and the cuts

The prompts

Tick the features you want — the prompts below rewrite themselves. Then paste them into Claude Code (or Cursor, or any agent) one at a time, in order.

Every toggle edits the prompts. The copy buttons grab the current version.

1 · Build it


    

2 · The settle-up math pass (don't skip this one)


    

3 · The summary, then ship it


    

4 · Get human eyes on it before the group uses it


    

Where agents go wrong on this build

Why the feedback step is in the plan

Money math is exactly the thing you can't see clearly on your own screen. You know what you meant each expense to mean, so you'll read the totals as correct even when the participant list is wrong or a cent went missing. The people who'll catch it are the ones being asked to pay. Prompt 4 wires your agent to our MCP server: it shares the live page, you send the link to one or two people in the group, they tap and pin notes right on the number that looks off (no login), and your agent reads the notes back and fixes what survives your judgment. Better a friend flags the bad split than the group chat does.

Disagree? Pin a note on it →