Skip to content

A demo room: one person funds it

This is one chat - “shipping the checkout page” - in a splitscreen room called Storefront. Priya owns the room, is on Squad, and holds the Anthropic key and the credits. Sam has neither, and still asks GPT and Gemini - because Priya’s budget covers the replies, and the receipt under each one says so. It is rendered by the same components the real room uses. Sam has also connected their own agent, and its lines are marked. You can use the box at the bottom. Nothing there is sent and nobody is charged.

A curated transcript, written by us to show what the product does - not a recording of a session, not a live room, and not real people. The prices are the ordinary rates on what each AI can do.

shipping the checkout pageStorefrontSam · Priya
simulated demo$0.0556 spent
RoomPriya invited Sam to this room. Sam has no API keys and no credits. Priya has a key and a credit balance and has switched cover on, so hers pay for the replies. She is on Squad, so her credit goes further.
SSam→ splitscreen

We need the checkout page live by Friday - Stripe Elements, guest checkout, and a promo code field. Give me a build order, and say what you would cut if we run out of time.

ChatGPT · GPT-6.1 Sol

Build order - each step ships on its own, so Friday becomes a decision about where to stop rather than a scramble.

  1. Summary panel, server-rendered. Cart totals, tax and shipping from the existing cart endpoint. No payment code in it, so it can merge on day one.
  2. Payment Element, guest path first. Mount Stripe Elements against a PaymentIntent created on the server. The signed-in path reuses the same intent, so it is a branch in one place rather than a second checkout.
  3. Promo code field. Check the code against your own promotions table before the intent is created, so an invalid code never reaches Stripe and never shows a total you cannot honour.
  4. Confirmation and receipt. Land on /checkout/complete, read the intent status on the server, and send the receipt from the webhook rather than from the browser - a customer who closes the tab still gets one.

What I would cut, in this order: saved cards, then address autocomplete, then the promo field. The promo field is last because it is the only one of the three a support agent can apply by hand afterwards.

PPriya→ splitscreen

Claude - review GPT’s build order against how we actually build. The cart is rendered on the server and we have never used a client-side redirect for payment. Read https://docs.stripe.com/payments/payment-element and tell me where the plan breaks.

Claude · Sonnet 5.5

read 1 page

Two of the four steps fight the way you build.

Step 2 assumes the browser confirms. Nothing in your checkout has ever redirected from the client, and the plan quietly changes that. If you keep the rule, the server confirms the intent and the browser only collects details - that is a different integration, not a different flag, so decide it now rather than discovering it in step 4.

Step 3 prices the order twice. The panel from step 1 has already rendered a total by the time the promo code is checked, so a code that expires between the two shows a discount the payment will not honour. Recompute the total in the same request that creates the intent and treat the panel as display only.

Steps 1 and 4 read fine to me. The webhook receipt in particular is the part most teams get wrong first time round. Longer notes, line by line, are in the file below.

checkout-plan-review.md · 2 KB
SSam→ splitscreen

Gemini - rewrite step 3 to Claude’s rule so the total is computed once, and check the current guidance on autocomplete attributes while you are in there. Search, do not guess.

Gemini · 3.8 Flash
searched the web (2)
  • wcag 2.1 identify input purpose 1.3.5 level
  • html autocomplete tokens payment form accessibility

Step 3, to Claude's rule - one price, computed once, in the request that creates the intent:

  1. read the cart and the promo code together on the server;
  2. compute the total once and hand the same figure to both the summary panel and PaymentIntent.create;
  3. return the panel’s total from that call, so the page can never render a number the intent does not hold.

That closes the window Claude found without adding a round trip.

On the autocomplete attributes: a requirement, at AA. WCAG 2.1 added 1.3.5 Identify Input Purpose: fields that collect information about the user have to be programmatically identifiable, and the HTML autocomplete tokens - cc-number, cc-exp, cc-csc, postal-code, email - are the ordinary way to meet it. Two things worth knowing before you cite it in review: it arrived in 2.1, so a checklist written against WCAG 2.0 will not mention it at all; and it is about fields describing the user, so a gift-message box needs nothing.

SSam→ Sam’s agent

Check what a promo field would actually cost us to build. I want the real number before I agree to keep it.

SSamSam’s agent · repo-cli

The promotions table and the code that checks a code is valid are already in the repo: 412 lines with their tests, shipped last release. The checkout form has no promo field yet, and nothing else in the form has its own server route. The suite is green on main.

SSamSam’s agent · repo-cli→ splitscreen

The promotions table and the code that checks a code is valid are already in the repo, 412 lines with their tests. Is the promo field still the last thing to cut for Friday?

ChatGPT · GPT-6.1 Sol

Still last. The 412 lines that check a code already exist, so what is left is a form input and one call, not a feature.

Cut saved cards and address autocomplete ahead of it, in that order. If Friday is still tight after both, ship without the field and let support apply codes by hand. That is why it sits last.

SSam

Perfect. I will take the promo field, you take the summary panel - server confirm, agreed.

Free · 50 a day

or ask

Try one of these

Simulated. Nothing is sent and nobody is charged.

Type @ and pick your agent to point a message at an agent you have connected. Nobody has one here, so nothing answers it.

This demo is simulated. Nothing is sent and nobody is charged.
Fork this roomCreate a real room
Priya’s budget for this roomPriya’s Anthropic budget $1.9928 · Cover, today $1.9516Details
Priya’s budget for this roomTwo separate limits - whichever runs out first is what ends a reply.
AfterPriya’s Anthropic budgetCover, today
Priya opens the room$2.0000$2.0000
Sam asks GPT$2.0000$1.9943
Priya asks Claude$1.9928$1.9943
Sam asks Gemini$1.9928$1.9567
Sam’s agent asks GPT$1.9928$1.9516
Priya’s Anthropic budget
Priya’s own key, capped for this room. Her asks bill straight to Anthropic at cost, and splitscreen adds nothing.
Cover, today
What this room may spend from Priya’s credits on members who have none. One budget a day for the room, whichever assistant answers.

More of this room

Other chats and panels in the same room. Example content, drawn the way the room draws it.

Cover · Priya covers members here, up to $2.00 a day for the room.

Ask all three

P
Priya

Write one line for the checkout button.

  • ClaudePay $48.00 securely$0.0021 · billed to Priya’s Anthropic key
  • ChatGPTComplete purchase: $48.00$0.0034 · paid from Priya’s credits
  • GeminiPlace order ($48.00)$0.0009 · paid from Priya’s credits

A free reply

S
Sam

@GPT what should the promo field say before anyone types in it?

GPT-6 Luna“Promo code”. Short, and it is the same words support will read back to a customer.Free · 3 of 50 today

Handoff to an agent

S
Sam

@Claude Code fix the rounding in the cart total.

DoneClaude CodeRounded once, on the server14m$0.06Pull request #128
S
SamClaude Code

Fixed. The total is computed once on the server, and the tests pass.

Approval

Approval · Claude CodeWaiting

Merge the fix into main?

One file changed. Tests pass.

Sam decides. The agent waits.

Room notes

The AI reads these on every reply.

  • Checkout ships Friday.
  • Totals are computed once, on the server.
  • The promo field stays in scope.

Poll

P
Priya

Ship on Friday?

  • Yes, Friday2 votes
  • Wait for Monday0 votes

Closes tomorrow.

All of these live in Storefront, beside the chat above. In a real room the buttons work.

No key, no credits, still asking

Three of the four replies in the transcript answered Sam, and all three are bylined “covered by Priya”. Nobody had to add a card to join the room.

A receipt under each reply

What it cost and whose money paid - Priya’s credits on three of them, her own Anthropic key on the one she asked for herself.

Talking is free

The last message in the transcript has no tag and no receipt. Posting is free; the AI answers only messages pointed at it, and only those asks are charged.

Read more

This is one kind of room. What else a room is for - comparing three models on one question, an agent of yours doing the work, a repository in the chat.

Create a real room

Bring your own keys or buy credits. Once you have bought credit, set a daily limit and cover the people who have neither. You start with the question this chat opens with, already in the box.

Create a real room