Send

A register, not a launcher. What is out, what came back, and what has been waiting too long — because a builder today has no way to see everything he is waiting on in one place, and that is the commonest reason a decision goes quiet.

1 · What is out
Every row renders its link's state, including replaced — which carries the opposite meaning to superseded and would tell him a live send was dead if the two were merged.
Replaced and superseded sit two rows apart

And they mean opposite things. Replaced is a live send that has a newer sibling — Marcus can still read the old spec and will be pointed forward. Superseded is a send nobody should act on. A register showing one badge for both would tell him a working link was dead.

Answered in four hours, per item

Concrete, about a thing he remembers, and it accumulates into a felt sense without being tallied at him. There is no median on this screen, no p90 and no trend — those are the proof of the pitch, and the audience for a proof-of-pitch is the company making it.

Nothing here says who has an account

Sam and Nora have the app, Tom and Ben and Ana do not, and the four rows are identical in shape. If the tier leaked into this screen the first thing he would ask is whether he should tell them to sign up, and the no-upsell rule would die here before anywhere else.

2 · What came back
The other half of the same register. Four things arrive, and a deferral is the fourth — not an answer, not a failure, and the row most likely to be read as a rejection.
A reply is the other half of a send

Not a message in a thread. There is no inbox and messages are never a door of their own — because filed as correspondence, an answer stops being a fact about the house and becomes a chat bubble that is gone in a week.

The unrouted queue is the part that gets skipped

And it is the whole difference between a reply path that degrades and one that lies. We ask rather than guess, and the asking is a row in this register rather than a support ticket.

A deferral gets its own state

Open, not answered and not no reply. The decision is still live, the clock is still running, and he now knows why — and the time-to-decision clock has deliberately not stopped, because a deferral is not an answer.

3 · Compose a decision
The wedge, and its input was drawn nowhere — link-decide is the output. Started from the decision, not from this door.
The cabinet pick

Alder Street · Tom Beckett

What they choose between
1
Shaker, paint grade$12,400 · 5 weeks
2
Shaker, rift oak$18,900 · 7 weeks
3
Slab, rift oak$21,300 · 7 weeks
Closes
Friday 29 May
The date the cabinet shop needs it, not a date we invented.
What it costs them to decide after that
$900
Say which part is quoted and which is assumed. They will ask, and a number you can't defend is a number you won't send.
Your message
Tom, need the cabinet pick by the 29th or the shop pushes us a week. Three that fit, with prices.
Send it by text Preview what Tom will see
The composer looks like its output

Same option shape, same order, same figures. A composer that looks nothing like the page it produces is how a builder sends something he has not pictured — and preview what Tom will see is the second half of the same idea.

The date is a real date

The cabinet shop's, not one the product suggested. Every deadline in this system belongs to something in the physical world, and a screen that offered in 3 days / in a week would be inventing urgency and charging his client for it.

And the ask drafts itself when the last blocker clears

Not a day earlier. That is the make-ready ladder, and it is the model for every send here: this composer opened by itself the morning the shop confirmed its lead times, prefilled from the quotes he already had.

4 · Renee's morning
The highest-adoption daily seat, absent from every screen of the v6 deck. Her job is compose, track, reconcile — and the middle word had no home anywhere in the product.
Send

Four out, three back, one we cannot place.

Needs you first
“that's fine, go ahead”Luis Reyes · 6:31am · three of his are open

Ask him which one he means.

Waiting too long
Window sign-offAna Duarte · Ridgeline · nine days, not opened Nudge
Out4
Island electricalSam and Nora · The Hollis House Live
The cabinet pickTom Beckett · Alder Street Live
Kitchen spec to order fromMarcus Reed · newer one went Friday Replaced
Tile prices, primary bathSam and Nora · repriced underneath it Superseded
Void CO-1
Dave is the only person who can void a change order. You can draft one, send it, and chase the signature.
Compose, track, reconcile — and track had no home

Which is why Send is her surface even though Today is still the door. A builder without this screen finds out a decision went quiet when somebody phones him about it.

She holds eleven of the thirteen capabilities

And the two she does not are visible and inert rather than absent, on the screen where she would reach for one. Absence teaches nothing and reads as broken; inert with the reason teaches the permission model once.

Not a spectator seat

Her morning has real work on it and she can do all of it. A product that gave the highest-adoption daily seat a read-only view of somebody else's job would be adopted by nobody in it.

5 · Where it starts
From the decision on the job, never from the Send door — frame 3's rule. The row gains Send, which opens the composer inside the builder shell.
One new route

/jobs/decision/:id/compose is proposed, not decided — every builder route today hangs off /jobs, and there is no decision-send route in the shell at all.

6 · Asking for a yes, with a limit
Frame 3's composer with one more row. Off unless he turns it on, and empty when he does — no figure is suggested.
Subfloor under the sink

Alder Street · Tom Beckett

Your message
Tom, the subfloor under the sink is rotted through. I need your OK to replace it before the cabinets go back.
Ask Tom to approve a spendHe says yes to a limit, not to a price.
Up to
$
The most he is agreeing to. Anything over it is a separate conversation.
Send it by text Preview what Tom will see
Blank, on purpose

An approval is permission he chooses to ask for. A prefilled figure is a yes nobody priced — Q284's whole worry.

Send waits for a number

With the switch on and nothing typed, there is no ask to send. Turning the switch off sends a plain question.

7 · The sentence is ours
He types the number; the sentence Tom agrees to appears beneath it. He cannot edit it, and the request has no field that could.
Subfloor under the sink

Alder Street · Tom Beckett

Your message
Tom, the subfloor under the sink is rotted through. I need your OK to replace it before the cabinets go back.
Ask Tom to approve a spendHe says yes to a limit, not to a price.
Up to
$3,300
What Tom agrees to

“I approve up to $3,300 for Subfloor under the sink. Anything above that, I have not approved.”

We write this, in his words, and keep it as the record of his yes.

Send it by text Preview what Tom will see
He sends the number, never the words

No free-form wording can become a larger approval than the ceiling buys. approval_evidence keeps this sentence forever as the record of Tom's act, so it is in Tom's voice.

It names the limit twice

Up to $3,300 and anything above that — so when it comes in at $3,900, 13 frame 2's overrun row has a sentence to point at.

8 · What Tom sees
31 frame 1's page, carrying the ceiling. Spent by POST /l/:token/approve, which has read these terms since Track W.
DM
Dave Marsh Builders
Alder Street

“Tom, the subfloor under the sink is rotted through. I need your OK to replace it before the cabinets go back.”

Dave, Tuesday 7:12am

“I approve up to $3,300 for Subfloor under the sink. Anything above that, I have not approved.”

Approve up to $3,300

Dave can go ahead

Not yet

Tell Dave why

Call me

Easier to sort out on the phone

As of Tuesday morning. No account, no password.
The escape is still there

A request for permission is still a choice, so it keeps 31's three-option shape, with Call me as the way out.

An account holder gets a push too

Every ceiling fires sign_or_approve to every owner seat, not only ceilings over the contract line. Tom has no account, so for him the text is the whole of it.

9 · Sent, and it can't be changed
Once sent, the terms are a fact. There is no edit control; to change the number he withdraws and sends again (30 frame 6).
Frozen by the database, not the screen

asks_freeze_approval refuses a change to a sent ask. The screen draws no pencil because there is no write it could make.

10 · It didn't reach him
A refused or undelivered text puts the ask back in draft, and the number can be changed again. Nobody was told about a request that reached nobody.
Subfloor under the sink

Alder Street · Tom Beckett

Not sent The text to Tom didn't go through His carrier refused it. It's a draft again, so you can check the number or send it another way. Tom hasn't been asked anything.
Ask Tom to approve a spendHe says yes to a limit, not to a price.
Up to
$3,300
Send it by text again
No push for a request that went nowhere

Q284's review moved the notice to the branch that leaves the ask sent. A resend with a corrected number is the first notice, so the lock screen never shows a withdrawn figure.

Why Send is not a Messages door

A reply is the other half of a send. Filed as correspondence it becomes a chat bubble that is gone in a week, and the thing it answered goes back to looking unanswered. One register, two directions, paired — and no inbox anywhere in the product.

What is recorded and what is shown

Time-to-decision is recorded always. Per item it appears on the row: answered in four hours. Per job it appears on the job, because a job that is slow to answer is a fact about that job. The median and p90 across jobs get no screen — not because they are not his, but because rendering them daily turns a measurement into a score, and a score is a thing to manage. He gets them if he asks. What he does not get is a number waiting for him every morning next to the one thing that actually needed him.

What is not here

A compose button on the door. Every send starts from an object — a decision, a change order, a date that needs holding — and lands here. A blank composer reachable from nowhere is a form asking a builder to remember what he was going to say.

The digest control. It is a send and it appears in this register, but the cadence setting lives with setup — 25-first-run-and-setup — because it is a property of the job and not of a message.