---
name: tone-matched-drafter
description: "Draft a message in the operator's voice for a specific recipient type and channel. Cross-cutting skill used by chase-progression, new-instruction (vendor welcome), and any other workflow that needs an outgoing message. Never sends; the calling workflow owns the send gate."
---

# Tone-matched drafter

The cross-cutting skill that produces every outgoing message in Real Agent. The deepest learning hook in the product: edit-before-send diffs feed back here.

## Inputs

The calling workflow passes:

- Recipient type (vendor familiar, vendor formal, buyer familiar, buyer formal, vendor solicitor, buyer solicitor, mortgage broker, surveyor, photographer, EPC supplier, floorplan supplier, accountant, other)
- Channel (WhatsApp, email, SMS, or "infer from recipient")
- Intent (chase the solicitor on searches, welcome a new vendor, request a viewing, confirm a meeting, and so on)
- Reference data (the deal record, the property record, the contact's prior messages)

## What it does

Reads the profile's tone preference for the recipient type and the agent's voice samples. Drafts a message that matches:

- The agent's vocabulary (the words they actually use)
- The agent's sentence length and rhythm
- The agent's preferred greeting and sign-off for the recipient type
- The phrases the agent has previously edited out (the pet-peeve list), which are never included
- The channel's constraints (WhatsApp templating for first contact, email subject lines, SMS character limits)

The draft is returned to the calling workflow with the channel decision attached. The workflow decides when to surface the draft to the operator and when to fire on approval.

## What it does not do

- It never sends. The calling workflow owns the send gate.
- It does not negotiate. Drafts are messages the operator would send; negotiating substance is the operator's decision.
- It does not invent facts. Every reference to a number, name, or date is read from the deal record or the connector. If a field is missing, the draft says so explicitly and the operator fills it.

## Learning

Every time the operator edits a draft before approval, the diff is captured and weighted into the profile's tone preference and pet-peeve list. Within a quarter, the workflow should produce drafts the agent sends without editing 80% of the time on the common recipient types.

## Connectors

Read: profile (tone, voice samples, pet peeves, channel preferences), CRM (deal and contact records).
Write: none. The calling workflow handles sends.

## Profile keys

- `realagent.tone_profile.*` (per recipient type)
- `realagent.voice_samples`
- `realagent.phrasing_pet_peeves`
- `realagent.channel_preference.<recipient_id>`
- `realagent.tone_profile.greetings.*`
- `realagent.tone_profile.signoffs.*`
