9 · Sales call + voicemail

Use case · the want as a person would post it:

“Call this prospect, pitch my service, and leave a voicemail if they don't pick up.”

GAP No voice channel exists — CONTACT speaks email only. The law, however, transfers cleanly: a call script is a draft, per-attempt approved, hash-bound; a voicemail is a send receipt; a live conversation needs a recording-consent ruling first.

The walk, step by step

Deal signed
FINISH

Blocks

Gates that fire Signing freeze.

Approve the pitch script + voicemail script
APPROVE

Blocks review_approve

Gates that fire Same per-attempt approval law as email — approve the exact words.

Place the call
CONTACT

Blocks

Gates that fire r104 on the call itself (never ask the prospect for credentials).

Note THE GAP: no telephony rail (provider, consent capture, recording/transcript as receipt).

File the outcome: reached / voicemail / no answer
PROVIDE

Blocks single_choice, written_response

Gates that fire Transcript or voicemail-confirmation files as the receipt.

Finish line
FINISH

Blocks yes_no

Gates that fire Binary only.

Gaps & what to build

To build: a voice CONTACT lane: scripted-call provider integration, consent handling ruled by Steven, transcript-as-receipt. The approval law (contract 2.17/2.21) generalizes verbatim; do not invent a parallel approval system for voice.

Where it can stall

A live human conversation cannot be hash-bound the way an email can — the script is approved, the conversation drifts. That gap between approved-bytes law and live speech is the genuinely new design question here.

HAR Reference · generated 2026-08-29 from bid_validator.py, target_walk.py, deal_step.py · staging is source of truth