Side project
The sandbox
How a feature gets designed when the engineer is an agent. Four rounds on credit cards, designed and shipped in a day.
The risk of building with an agent is not that it writes bad code. It is that the design never gets argued. You describe a thing, something appears, it looks finished, and you ship it without anyone ever questioning the first idea.
So Adjustmint has a sandbox: a page where a question lives with its options side by side, in both themes, before anything is decided. Nothing on it is a specification. When an option is agreed it leaves the sandbox and goes into the design system with a version, and the exploration moves to an archive that keeps a history of every iteration and the decisions that were made.
This is one of those explorations, kept whole. Adding credit cards to a checkbook app, worked out in four rounds in a single day and in the invite-only build by the end of it. Every figure on this page is made up, as every figure in the sandbox is.
Why the sandbox exists
The first app I built this way taught me that nothing exists for the agent unless it is written down. The agent does exactly what is written and nothing that is not.
The obvious response is to write more specifications. The useful response is to have somewhere for things to live before they are specifications, because most of the cost of this way of working is not writing the decision. It is discovering that you made one without noticing.
- Rounds
- 4
- Days
- 1
- Questions asked before the first screen
- 5
Five questions before a single screen
Claude asked five questions before drawing anything, and the first one decided the feature.
When you buy something on a credit card, what should happen to the money in checking? Option A, it is set aside immediately, so what you can safely spend drops the day you spend it. Option B, nothing happens until you pay the card.
I picked A. Then I raised the case A does not cover: people who cannot clear the card and are carrying debt. Setting aside two thousand dollars they were never going to pay this month tells them they can spend nothing, which is both useless and unkind.
What came out of it is the shape of the whole feature. Only new purchases are set aside. The debt already carried stays apart as a carried balance, and the screen gains a separate line answering a different question: what if you paid it off entirely.
That is thirty seconds of conversation and it is the reason the rest of the design works. If the first thing on the page had been a screen, the screen would have been wrong in a way that takes four rounds to find rather than one question to avoid.
Round one, which I rejected
The first draft put three card lines into the bill list: the scheduled payment, the amount set aside, and what it would cost to clear the card.
-
This is very confusing. Seeing two additional lines in the bills makes me think there are 3 total bills, when in fact, 2 of those lines are details about how the credit card can be paid.
I drew the replacement myself in Figma. One row for the card payment, with a Details control that opens to show the two ways to pay.
This is the part of working with an agent that nobody describes accurately. It is not that the machine produced something bad. It produced a reasonable reading of an ambiguous instruction. The fix was not a better prompt. It was a drawing.
Round two, where I was the one who was wrong
Round two built out my direction, and corrected a number in my own sketch while doing it: safe to spend read $1.50 because I had left the checking balance out of the arithmetic. It should have read $613.85.
Then it raised the case my sketch did not cover, a payment due after payday, and I got it wrong.
My position was that a payment due after payday should not lower what you can spend now, because the next paycheck pays it, the same as any other bill. The counterargument came with a worked example. Four hundred dollars of groceries goes on the card on October 15 and the card is not due until November 3. If that does not count, safe to spend sits unchanged for nineteen days while the next paycheck already owes four hundred dollars. With monthly cards and paydays every two weeks, that is roughly half of all card spending.
-
Ah yes. That makes sense. I now understand option A.
Bills are money owed for something not yet received. A card purchase is money already spent. They look alike in a list and they are not the same object, which is why cards eventually got a group of their own rather than sitting among the bills.
I am keeping that round on the page deliberately. A portfolio that only contains the decisions I got right is a portfolio of one round.
Round three, wording that ages
Two wording decisions, both of which came from asking what the sentence would say in a month.
The screen said "Since Oct 9," meaning since the card was added. That reads correctly on the day and badly later, once the starting balance has scrolled out of view and nothing on the screen says what that date refers to. It became "since you added the card on Oct 9," and after the first payment, "since your Oct 20 payment."
The row label was "Already set aside." Once the row became the deduction itself rather than a report of one, "already" was doing nothing, and it went.
The same word stayed in the payment form's note, for the opposite reason. The money is set aside as you spend, whether or not you ever open that form, so "will be deducted" would have been a small lie about when something happens.
Round four, what you do not pay
If someone pays less than what has been set aside, where does the rest go? It could keep suppressing safe to spend, or it could become carried debt. It becomes carried debt, which is the honest answer: money you did not pay is money you now owe.
Then I asked for a warning that paying the minimum only covers interest. I did not know that on most US cards the minimum covers the month's interest plus a slice of the principal, so "only" would have been wrong for most people reading it. That was a good catch and I was glad to have it.
What shipped says this: "Paying only the minimum mostly covers interest, so the balance goes down slowly. Your card statement shows how long paying only the minimum would take." True, and it still does the job the warning was for. The app exists to get someone on track with their money, and that sentence serves it better than mine would have.
What was decided
-
Card purchases lower safe to spend the day they are entered, never the present balance, and regardless of when the payment is due.
-
One row per card, in a Credit cards group of its own, subtracted once: the larger of what is set aside and the scheduled payment when that payment falls before payday.
-
The payment is a bill that enters itself on its due date as a transfer. Paying less than what was set aside moves the remainder to the carried balance. Extra payments only pay down.
-
Purchases belong to the period they were entered in, so a late entry is set aside rather than turned into debt.
-
Old lump-sum card payments stay in the register as history. A pending refund counts once it clears.
The design went to Claude Code as a two-phase build, plan first and then build, and two things the rounds surfaced but did not solve were filed rather than absorbed: a payment planner, and bills paid by card.
All four rounds happened on October 14, 2026. The build began when the last one closed, and the feature was running in the invite-only build the same day.
The outcome of those four rounds is now a versioned pattern in Planchet, Credit cards. Its version moved on its first day of real use, when a money rule changed once someone actually spent on a card.
What I would take to a team
Give options somewhere to live before they are decisions. Not a document, a page. The cost of a design system is not writing specifications, it is the decisions that get made silently because there was nowhere to put them.
Keep the rounds. The archive of this exploration is more useful than its conclusion, because in six months the question will not be what we decided, it will be why the obvious alternative was rejected.
An agent that argues is worth more than one that complies. Twice here the correction ran toward me: a number in my own sketch, and a sentence I was sure of. A tool that had simply built what I asked for would have shipped both.
Write the reason next to the wording. "Since Oct 9" and "Already set aside" are the kind of thing that gets changed back by the next person, or by the next prompt, unless the page says why they went.