# P13 — Service Capabilities

**Updated:** 30 August 2026 (repo build) · What the service can deliver, capability by capability. A row turns ✅ only with evidence: a passing QA case or a live client using it, with date.

Legend — **Status**: ✅ live with a client · 🟨 built in template, no live client yet · ⬜ planned · ❌ decided against.
**Template** column: 📝 = designed and written into `prompts/restaurant/` (restaurant-v1), **not yet loaded onto a platform and not yet QA-validated** · — = not written yet.

> **Why nothing is 🟨 yet.** 🟨 means *built in the template* — configured on the platform and demonstrable on a test call. What exists today is the template **specified in this repo**: prompts, flows, escalation rules, tool definitions. No Retell account exists (blocked on O2/O4), so nothing has been loaded, dialled, or proven. 📝 is deliberately a weaker claim than 🟨, and the distinction is the difference between "we wrote it down" and "we heard it work".

## Core capabilities (all verticals)

| Capability | Status | Template | Evidence / notes |
|---|---|---|---|
| Answer inbound phone calls 24/7 in natural voice | ⬜ | 📝 | `prompts/restaurant/01`; QA cases 1–4 |
| Answer WhatsApp voice calls (BD/Gulf pattern) | ⬜ | — | Route still unproven — `COMPATIBILITY.md` §4 `[test]`, confirmed at `R1` step 6 |
| Natural interruption (barge-in) | ⬜ | 📝 | Platform setting specified in `01` §voice config; QA case 4 |
| Book/reschedule/cancel appointments into real calendar | ⬜ | 📝 | `prompts/restaurant/03` flows 1–2; `tools/check_availability`, `create_booking`, `find_booking`, `cancel_or_modify_booking`; QA cases 1, 2, 14 |
| Booking confirmation to caller (SMS/WhatsApp) | ⬜ | 📝 | `tools/create_booking.json`; QA case 1 |
| Answer business FAQs from owner-approved knowledge pack | ⬜ | 📝 | `prompts/restaurant/02` schema + `03` flow 3; QA cases 11, 12 — zero-hallucination bar |
| Lead capture → client CRM/Sheet (standard payload) | ⬜ | 📝 | `tools/capture_lead.json`, maps to `API_CONTRACT.md` §3 |
| Escalation to human: on request, on frustration, on sensitive topics (D8) | ⬜ | 📝 | `prompts/restaurant/04` — all four triggers with scripted wording; QA cases 5–8 |
| Structured message-taking / voicemail replacement | ⬜ | 📝 | `03` flow 5; QA case 10 |
| After-hours mode with morning summary | ⬜ | 📝 | `prompts/restaurant/06`; QA case 9 |
| Daily activity summary to owner (WhatsApp/email) | ⬜ | 📝 | `06` — shared n8n flow, parameterized per client; QA case 20 |
| Weekly client report (Growth/Pro) | ⬜ | — | `TESTING.md` §4 |
| Recording/consent compliance per market | ⬜ | 📝 | `01` greeting variants A/B/C per `SECURITY.md` §2; QA global expected |
| Rollback to human-only in ≤ 30 seconds | ⬜ | 📝 | `runbooks/R3` Stage 5 + `R4` §F; rehearsed by the owner at every go-live |

## Vertical capabilities

| Vertical | Capability set | Status | Template |
|---|---|---|---|
| **Restaurant** (template #1) | Reservations, hours/menu/location Qs, takeaway-intent capture to staff WhatsApp, large-party escalation | ⬜ | 📝 **`restaurant-v1` written** — `prompts/restaurant/`, 6 prompt parts + 6 tool definitions + fixture. Unvalidated |
| **Clinic** | Appointment booking by reason category, reschedule/cancel, scripted emergency deflection, insurance/price Qs from pack only, forbidden-topics guard | ⬜ P4+ | — |
| **Salon/spa** | Service+stylist booking, price list, cancellation-policy wording, opt-in upsell line | ⬜ P4+ | — |
| **Real-estate** | Lead qualification (budget/area/buy-rent), viewing bookings, instant hot-lead alert, after-hours capture | ⬜ P4+ | — |

## Languages

| Language | Status |
|---|---|
| English | ⬜ (sellable per `COMPATIBILITY.md`, live at first pilot) |
| Arabic | ⬜ experimental — gated by C-06 tests |
| Bangla | ⬜ experimental — likely weakest, honestly flagged; gated by C-06 |

## Decided against (❌, with reasons in `SPEC.md` §5)

Outbound calling campaigns · payment collection by phone · POS/EMR deep integrations at pilot · number porting · unlimited-minute plans · human-backup answering.

## Honest summary

**Today the service still cannot answer a single phone call.** No platform account exists, no number is bought, no assistant is configured, no client is live. Every Status row is ⬜ and will stay ⬜ until somebody dials a number.

What changed on 30 Aug 2026: the restaurant template moved from *designed in a spec* to *written as configuration-ready files* — `prompts/restaurant/` holds the identity and greeting standards, the knowledge-pack schema, six call flows, the four escalation triggers with scripted wording, the forbidden-topics list, after-hours behaviour, an assembled paste-ready system prompt, six tool definitions, and a fully-populated fictional restaurant to QA against. The 20-call script is staged as a runnable sheet. The onboarding SOP and go-live gate are executable checklists.

**That is a real reduction in the work remaining, and it is not the same as a capability.** The honest position: the gap from here to the first ✅ is no longer "design and build the template" — it is **open a platform account, load this template, dial the number twenty times, and fix what breaks.** That is a few founder-evenings, gated entirely on O2 and O4.

The original warning stands: if this table still says ⬜ everywhere by the end of P3, that itself is gate evidence.
