Finance agent asks
Needs your decisionRefund £1,240 to Acme Ltd
Over the £1,000 limit, so it needs a person.
- Amount
- £1,240
- Customer
- Acme Ltd
- Policy
- Refunds v3
Asked 4 min ago
Deliverd design system
Deliverd sits between autonomous systems and people. Every screen answers, in order: what is happening, what is being asked of me, why, what happens if I say yes, who asked, what evidence exists, and what I do next. This page is every token and component that answers those questions.
Clearer, not more
A sentence that says what matters beats another widget.
People first, machines on request
Human language leads; the technical detail is one click away.
One obvious next step
One navy action per screen. Nothing else competes with it.
Type carries the hierarchy
Scale, space, colour, placement, and weight last.
Whitespace is the identity
No cards inside cards inside cards.
Colour is never alone
Every status has a word, and usually an icon.
A warm off-white canvas, ink type, navy for the one action, pale blue for selection and focus, and muted status colours. Text colours show their contrast on the canvas; every one clears 4.5:1.
canvas
#F8F9F7
bg-background
Page ground
surface
#FFFFFF
bg-card
Cards, inputs, dialogs
surface-subtle
#F3F6F8
bg-muted
Insets inside a surface
surface-blue
#EEF6FC
bg-accent
Selection, hover, active nav
blue-soft
#DCEEFF
bg-blue-soft
Strong selection, info fill
ink
#071428
text-foreground
Headings and primary text
17.4:1 on canvas
ink-soft
#4F5968
text-secondary-foreground
Body copy
6.7:1 on canvas
ink-muted
#636B78
text-muted-foreground
Captions and metadata
5.1:1 on canvas
navy
#082E73
bg-primary
The one primary action
12.1:1 on canvas
navy-hover
#06265F
hover:bg-navy-hover
Primary, hovered
blue
#1D5FC4
text-brand · ring-ring
Links, accents, focus
5.7:1 on canvas
blue-bright
#246FDB
bg-blue-bright
Fills, charts and dots, never text
green
#207A58
text-success
Approved, live, finished
5.0:1 on canvas
green-soft
#E9F6F0
bg-success-soft
Its fill
amber
#8C5A12
text-warning
Waiting, needs a decision
5.5:1 on canvas
amber-soft
#FFF4DE
bg-warning-soft
Its fill
red
#A53A3A
text-danger
Declined, refused, failed
6.1:1 on canvas
red-soft
#FCECEC
bg-danger-soft
Its fill
Newsreader for display: headlines, page titles, report headings. Geist for everything you read to operate the product. Geist Mono only for IDs, code and policy expressions.
Display XL · landing hero
Agents do the work.
Display L · section statement
People approve it.
H1 · app page title
Good morning, Sarah
H2 · section heading
Needs your decision
H3 · card title
Refund £1,240 to Acme Ltd
Body L · lede
Finance agent wants to issue a refund over the £1,000 limit.
Body · app text
The agent pauses here until somebody decides. Nothing has been sent.
Caption · metadata
Asked 4 minutes ago · expires tomorrow at 17:00
Mono · technical
payments.refund · amount > 1000
A 4px base. Radii named for what uses them. Three shadows, tinted with the ink, and nearly invisible.
rounded-xs · 8
Badges, menu items
rounded-sm · 12
Buttons, fields
rounded-md · 16
Textareas, menus
rounded-lg · 22
Cards
rounded-xl · 28
Dialogs, panels
rounded-2xl · 36
Feature panels
rounded-3xl · 48
Showcase frame
rounded-full · pill
Composer, avatars, status
shadow-soft
A resting surface. Usually none: the hairline is enough.
shadow-lift
Menus, and an interactive card when hovered.
shadow-pill
Floating: dialogs, the composer, the showcase windows.
Every status in the product comes from one map, so the same state reads the same way everywhere. The word is always there; the icon repeats it.
A visible label above every field, a hint under it where one helps, and an error that says how to fix it. Field edges are drawn at 3:1 so a field can be found.
The approver sees this first, so say it as a sentence.
Enter the amount as a number, like 1240.
A page opens with its title in the display face, one line saying what it is for, and its one action. Sections are panels only when they need a heading.
The finance agent paused here for a decision. Nothing has been sent.
Exactly what runs if you approve.
A number with the sentence that explains it. A number nobody can act on is decoration.
Waiting on you
3
The oldest was asked 2 hours ago
Decided this week
41
Median time to decide: 6 minutes
Autonomy
82%
Policy settled 279 of 340 requests in the last 30 days without interrupting a person.
The signature input. One sentence starts a real request on the page that already makes one, and that page asks who should decide. It never runs an agent or pretends to.
Work as a calm timeline. Each step reads as a sentence; the machine's version waits behind Details.
Read the refund request from the support inbox
10:41
Checked it against the refund policy
10:41
Over £1,000, so Finance decides.
Waiting for Sarah Chen to approve
10:42
Asked by email and in Slack.
Issue the refund
Runs once approved.
Could not issue the refund
10:47
The payment provider refused it. Nothing was sent, and Finance has been told.
A request reads as a sentence: who asks, for what, the facts that decide it, and what happens next. The decision is made on the request's own page.
Finance agent asks
Needs your decisionOver the £1,000 limit, so it needs a person.
Asked 4 min ago
Priya Shah asks
Waiting for 2 peopleAsked yesterday
Who did what, under which policy, and when. Agents, people and policy are always told apart.
Finance agent (Agent) asked to refund £1,240 to Acme Ltd
Agent
Refunds policy (Policy) sent it to Finance
PolicyRefunds v3 · over £1,000
Sarah Chen (Person) approved it
Person
Finance agent (Agent) issued the refund and sent a receipt
Agent
A policy read as plain English: when this happens, do that, because of this. The expression the engine runs is under Technical view.
What the finance agent may refund on its own.
When a refund is £1,000 or less, let it go ahead.
Routine, and reversible within 30 days.
When a refund is over £1,000, ask a person to approve (Finance).
action == "payments.refund" && input.amount > 1000
When the customer is on a payment hold, refuse.
Legal asked us to stop all payments to held accounts.
Published work, with who made it, which version people see, who can see it, and whether it is live.
By Claude · v4 · Finance
By Codex · v2
By Cursor · v1
For comparing many of the same thing. On a phone, a table scrolls inside its own frame; the page never scrolls sideways.
| Request | Asked by | Status | When |
|---|---|---|---|
| Refund £1,240 to Acme Ltd | Finance agent | Needs your decision | 10:42 |
| Send the renewal quote | Sales agent | Allowed by policy | 09:15 |
| Delete 40 stale accounts | Ops agent | Declined | Yesterday |
An empty state says what will appear and the one thing that puts it there. An error says what failed and what happened to your work.
When an agent asks for a decision it appears here, and we email you.
The connection dropped while we were fetching them.
Nothing was approved or declined.
A dialog for a short, focused decision. A sheet for anything with more to read: from the bottom on a phone, from the side on a desktop.
Plain English, sentence case, and the person's words rather than the system's.
| Say | Not |
|---|---|
| Ask Finance | Configure approval routing destination |
| Waiting for Sarah | Pending decision state |
| Agent continued | Workflow execution resumed |
| Nothing was sent | Operation aborted |
| Refused by policy | DENY |