DESIGN PREVIEW + LIVE — Calls, the Console recap and the Answering switch are wired to the office API (operator sign-in required); amber stays canned · green V1 = the plumbing increment, amber V2+ = tuned on the working platform · Robert approves or edits THIS file
🥾 BootsOnCall voice
OPERATOR SIGN-IN
🥾 BootsOnCall voice
🎩 Manager V2

Console — the room

Watch, join, take over, kill. Nothing starts here — in V1 every call starts with a homeowner or a pro dialing the line, and everything live is visible here with its name on it.

● LIVE · none ■ STOP 📞 line: (847) 245-6707 · voice-only · never a campaign number Ruby — ON · OFF = the old voicemail, nothing lost
door — Telnyx webhookbridge — pm2 · box BOCengine — xAIrecord — Postgreswatchdog — QNAP · outsideall green · 12:06 PM · a grey light here = the same alarm that pings Telegram V1
THE FLOOR — RIGHT NOW · 12:06 PM CT

ON A CALL NOW V10

No live call. When someone dials the line, the room appears here — watch V1 · listen / join / take over V2.

HANDOFF → FLOOR V20

No live transfers. V2 — when Ruby hits a hazard or a hot job, the closer rings here. In V1 she books a callback instead.

SCHEDULED1

(847) 555-0117
callback · Mon 8:00 AM
booked

BOOKED → JOBS V11

Jobs ›Faucet repair
plumbing · Wilmette · from Maria's call
filed into the existing Jobs pipeline

RECAP3

open ›Maria Fuentes
inbound · 9:41 AM · ES→EN
ungraded
open ›Tony Kowalski
contractor · 9:12 AM
open ›(224) 555-0199
hazard · 8:03 AM · 911 line read
THE PROCESS — HOW THE FLOOR RUNS
1Inbound answer — Ruby picks up, gets four things, files the call reportV1● the plumbing
2Callback choreography — the promise, inside your hoursV1● with the plumbing
3Warm transfer — the closer rings, Ruby stays on until the joinV2◐ tuned on the platform
4AUTO on the dispatch floor — she assigns through dispatch, switches offV4○ your presses
5Outbound from a file — campaigns, per-campaign GOV3+○ not here yet
▶ DAILY LOG — 9 moves · every call (Ruby · you) · AI spend today $0.84 · 6 calls · glass box: actor + old → new V1
9:42 AM · ruby · callback booked — Maria Fuentes · Mon 8:00 AM (inside hours 7–21)
9:41 AM · ruby · call filed — Maria Fuentes · report → Calls · job → Jobs
9:12 AM · ruby · wall held — contractor doc question answered "under review"
8:47 AM · you · controls: spend cap $10 → $15
8:03 AM · ruby · hazard — safety script + 911 line read · filed
7:00 AM · system · answering ON — schedule · old OFF → new ON
FLOOR — WHO CAN TAKE A PATCH V2
Robert P1 · availableeveryone off → Ruby books instead of patching · edit on Controls
MANAGER · LATEST FLOOR READ V2
FLOOR CHECK — SUN AUG 31, 12PM CT
🔥 Gas-smell call handled clean — safety script + 911 line read in 25 seconds, filed. Maria Fuentes · Wilmette · leaking kitchen faucet · wants tomorrow 8–12 · gate code and dog noted · no eligible pro yet → callback booked 8:00 AM — that's the play. Tony Kowalski asked about his certificate; the wall held ("under review").

Calling floor — the schedule of the room

In V1 the floor holds callbacks and job windows only. Campaign colors and dial-queue day-spans arrive with outbound (V3).

SUN 31
8:03a hazard · filed
9:41a Maria F. · callback set
MON 1
8:00a callback · Maria Fuentes
8a–12p job window · plumbing · Wilmette · proposed
TUE 2
WED 3
5:39p callback · (847) 555-0117
THU 4
FRI 5
SAT 6

The forecast makes the levers visible. Solid gold = a promised callback (the five-minute/next-morning promise). Hatched green = a job window Ruby proposed, waiting on your OK in semi mode. Painted past goes grey.

Controls — the standing defaults

What the line inherits. Nothing dials from here. Every edit lands in the Daily Log with actor + old → new.

Answering V1

ON — Ruby picks up. OFF — callers hear the old voicemail greeting; nothing is lost, voicemail still records.
the off switch is the first brake — it works before anything else does

Callback hours V1

7–21 h CT
inside them she promises a callback; outside them she says "first thing in the morning"
target: Robert · cell

Spend cap today V2

$15 / day
beyond it callers hear voicemail · Telegram at 50 / 80 / 100%
used today $0.84 · 6 calls

Miss chain — the call she didn't catch DECISIONOFFON

busy · hung up before the answer · cap voicemail → a text-back within 60s riding Steve's existing channel: "Sorry we missed you — want us to call back?" The reply lands in Steve's texts, attributed to the call for 14 days.
EB runs 2 retries · redial 180s · + miss-text — you rule which stage this rides in

Mode V2+autosemimanual

semi = she proposes, you approve · auto = she assigns through dispatch · manual = messages only
every mode switch defaults OFF — deploying changes nothing

Transfer floor — who takes a warm patch V2

Ruby patches a qualified caller to the available person with the lowest priority. Empty or all-off → she books a callback instead.
NAMEPHONEPRIORITYSTATUS
Robertcell1Available
THE FLOOR THAT ISN'T YOURS
Locked by design — the wall. She never quotes a firm price, never promises a specific pro or a time, and never tells a contractor why a document was judged — those words are "the team confirms" and "under review". No control on this page widens that. REKRA's line is a different trunk and stays untouched.

Calls — the record

One line, every caller — homeowner or pro — one surface. The door owns the record: if it isn't here, it didn't happen.

AllUngraded · 3Inbound
Maria Fuentes ES→EN
Aug 31 · 9:41 AM · inbound · 14 turns · 2:10
ungraded
Tony Kowalski contractor
Aug 31 · 9:12 AM · inbound · 6 turns · 0:58
ungraded
(224) 555-0199 hazard
Aug 31 · 8:03 AM · inbound · 5 turns · 0:47
ungraded
Unknown
Aug 30 · 4:12 PM · inbound · 2 turns · 0:09
tx-…-canned

Maria Fuentes

xAI · Rubyinbound · Aug 31 · 9:41 AMduration 2:10 · turns 14 · avg latency 1.0soutcome — V2Raw record ›
FLOOR MANAGER — GRADE & COACHING V2auto-grade OFF — grade on demand
Not graded yet.
TRANSCRIPT
Hi, thanks for calling Boots On Call, this is Ruby!0:03 RUBY 0.8s
Hola — mi grifo de la cocina está goteando.EN · my kitchen faucet is leaking0:09 MARIA
¡No hay problema, la ayudo en español! ¿Desde cuándo gotea?EN · No problem, I can help in Spanish! How long has it been leaking?0:13 RUBY 0.9s
Desde ayer. Quiero que alguien venga mañana por la mañana.EN · Since yesterday. I want someone to come tomorrow morning.0:22 MARIA
Entendido — mañana por la mañana. ¿Cuál es la dirección?EN · Understood — tomorrow morning. What is the address?0:27 RUBY 0.7s
1827 Chestnut Ave, Wilmette. El código de la puerta es 4410 — y hay un perro en el patio.EN · … gate code 4410 — and there is a dog in the yard.0:38 MARIA
Perfecto, lo anoté todo. Un miembro del equipo la llamará muy pronto para confirmar la ventana y el precio.EN · Perfect, I noted everything. A team member will call you right back to confirm the window and the price.0:47 RUBY 1.1s

Agents — the cast, one truth

Everything below is read from the box — bridge files + env, live. There is no second list to drift. An agent = cast (prompt file) + engine + voice params. Numbers are assignments, not identity.

LIVE — SERVING REAL CALLERS · READ FROM THE BOX

Ruby LIVEV1

xAI · grok
VOICE tbd at build · MODEL grok-voice-latest · CAST ruby
voice/prompt-boc.txt · from fileView
CURRENT JOBS — door: (847) 245-6707 · OFF = voicemail

ruby-draft TRAININGroad · V2

copied from ruby · sandbox — never a real caller
The road out, ear-gated: test-drive dials your number, never a customer — the transcript lands in Calls. Promote unlocks after a test call exists, asks the agent's name typed back, and is only live when the bridge confirms the version hash back to you.

Prompts are read-only on the live card — editing live call behavior is what the training lane is for. Live rows are computed from the box on every read, so the roster cannot drift from what callers actually hear.

Campaigns — proof of work

Every launch a named campaign: its own list, its own caller, its own GO and STOP, its own results.

Every move on every tab is a touch on the master log the moment it happens · the log reports, never decides · if Ruby stops answering, the outside watchdog alarms Telegram — the pill going grey up top is the same signal on this screen.