What problem does it solve? Lead databases store first names exactly as scrapers found them: "Dr Matthew", "PAUL", "👋 James", "Kathryn (Katie)", or company names sitting in the person column. Pasted into "Hi {{first_name}},", these strings produce broken greetings that expose the email as mail-merged. This playbook converts each raw first-name string into the short spoken form a person would actually be greeted by, and withholds rows that have no safe answer. ## Core Features & Use Cases - Locked LLM prompt with deterministic guards: A measured gpt-4o-mini prompt strips honorifics, credential suffixes, emoji, possessive artifacts, and appended job titles, while six deterministic guards (G1-G6) catch placeholders, company-name overlap, acronyms, run-together capitals, non-Latin scripts, and invented letters. - Explicit abstain and review contract: Outputs first_name_clean, changed, confidence, and needs_review per row; unusable rows are excluded and routed to human review rather than falling back to generic greetings like "there" or "friend". - Clay implementation specs: Includes clay-table.md (column build with JavaScript guards) and clay-workflow.md (four-node CLI workflow with Python guards) for deploying inside Clay. - Use Case: Before launching a cold email campaign, run your lead list through the playbook so "Dr Sean Li We Are Actively Hiring At Antai Global" becomes "Sean", "AAA" at company "AAA Upholstery" is excluded, and "珊" is preserved intact and flagged for a native-language campaign. ## Quick Start Give the AI a lead row with its raw first name, last name, and company name, and ask it to return the cleaned greeting-ready first name using this playbook's prompt and guards.