Ron Bronson

Nolla

A question desk I built on a large language model. You ask a question, the desk sorts it and posts a price, the answer writes itself while a meter runs, and you get a receipt. When the answer is wrong, the receipt goes to a counter for a refund.

Three phone screens in chartreuse and indigo. The first shows a question about a kept deposit with four priced options and an Ask button for 520 tkn. The second shows the answer streaming with a meter reading 397 tkn. The third shows the finished answer, a question back with No selected, and the next step.
One call through the desk: the question priced as it’s typed, the answer metered as it’s written, the finished answer.

The problem

Chat products charge a monthly subscription, and the cost of each answer stays hidden. Their interfaces are tuned to keep the conversation going, and they answer whatever you type, including questions a pharmacist, a librarian, or a tenants hotline would answer better. When an answer is wrong, the cost stays with the person who paid for it.

How the desk works

Every question is a call. Sorting it costs 40 tkn, and the desk posts four prices before any work runs: 100 tkn for a routing slip, 200 tkn for a quick answer, 520 tkn for an answer with sources, and 840 tkn for a fuller look. Each price follows a fixed schedule you can check, where a source costs 120 tkn to open, each word costs 1 tkn, and checking the answer against its sources costs 80 tkn. Each earlier turn in a thread adds 10%.

The answer streams onto the screen while a meter counts the words and the tokens spent, and the balance drops in the corner. The finished page gives the short answer, what the law says with its citation, the people who handle this kind of question, one question back, and a receipt. Every figure carries its unit. The balance refills each Monday.

A finished answer about a kept deposit: the short answer, the rules on wear and carpet cleaning with citations, what would change the answer, three places that handle deposit disputes, and a question back
The finished answer, with the people who handle deposit disputes.
The refund counter: the question, the itemized charge of 520 tkn, and five reasons to pick from
The refund counter, with the charge itemized line by line.

Where the desk sends people

The desk answers what belongs at a reference desk and routes the rest. A deposit dispute goes to ORS 90.300 and the Community Alliance of Tenants. A medication question goes to a pharmacist. A question about opening a shop goes to the small business development center, and the desk asks whether you know someone who has run one. It suggests kinds of people and asks whether you know one. Your question stays at the top of the page in your own words.

Refunds

In Moffatt v. Air Canada, 2024 BCCRT 149, the British Columbia Civil Resolution Tribunal held Air Canada responsible for a refund policy its chatbot made up. I built the refund system on that case. Every charge is itemized, so every failure has a price. The counter refunds checkable problems on the spot, up to 300 tkn a call and 1,000 tkn a week. A claim above that goes to a manager desk, which asks three questions, runs the checks, and issues a decision receipt. A person reviews appeals within 7 days.

The manager desk, step 1 of 3: What went wrong, with four answers to pick from
The manager desk asks three questions.
Manager decision, approved: 520 tkn back and a free redo, the failed source check highlighted, and the decision receipt
Approved. The answer gave 30 days; the statute says 31.
Manager decision, partly approved: 18 tkn back, the missing section check highlighted, and the decision receipt
Partly approved. A required section was missing.
Manager decision, denied: no tokens back and one free redo, every check passed, and the decision receipt
Denied. Every check passed.

Two colorways

The desk runs in chartreuse and indigo in light mode and in teal and peach in dark mode. I computed the contrast ratio for every color pairing before it shipped: indigo on chartreuse is 13.6 to 1, peach on teal is 10.1 to 1.

The same three phone screens in teal and peach, with mint buttons
The same call in the dark colorway.

How it’s built

Rules
A written skill gates an existing model: how to sort a call, what each price covers, how an answer is shaped, and when a refund applies.
App
Hono on Cloudflare Workers, a React and Vite front end, and zod schemas for the model’s structured output.
Arithmetic
Prices and refunds come from one shared module with tests, so every decision receipt can be recomputed.
Access
Cloudflare Access. The desk at 0000th.ai is invite only and stays that way.
Copy
An editorial policy for the desk, checked with prosekeep and plain-language-default.
Records
Agents wrote much of the code. Each build run ends with a closedtab after action record.

What changed after the first build

The first agent build added things outside the approved design. It put an exchange rate in the header, a formula under every option, and a footnote under the ask button, and it added a list of sample questions. I wrote UI guidelines that name each addition and rule out anything absent from the approved screens. They’re in the repo for the next build.