← Back to brief

feedback ea voice

memory · feedback_ea_voice.md

Status — first calibration 2026-04-26 (Sunday)

8 thumbs-ups processed. 0 thumbs-downs. All ratings collected on a single PWA review pass on 2026-04-27 01:31–01:33 UTC, covering INFO/FYI items surfaced from Apr 23–24 inbound activity (no actual outbound drafts in this batch — these were context-flag entries that live-ea queued so Joseph could acknowledge from the PWA).

👎 Patterns Joseph has rejected (1 total, last updated 2026-05-08)

1. Trevor Pyle draft (Gmail id 19dfe060b5bea9b6, 2026-05-06) — "super AI generated and not at all in my authentic voice"

Joseph quote: "drafts in emails look super AI generated and not at all in my authentic voice. fix that"

The 8 specific things wrong:
1. Numbered list of "things I can do" ("Two things I can do right now to make this easier: 1… 2…") — Joseph never offers options as a numbered list; weave into prose.
2. "single point of contact going forward" — corporate filler
3. "stabilized revenue projection" — pitch-y; use "what 230 Buckhorn would actually do" or "the projection numbers"
4. "real numbers to weigh against any other quotes you've gotten" — presumes the prospect is shopping; condescending
5. "Whichever (or both) is useful, let me know" — robotic option-pickup
6. "I'll keep it tight" — performative brevity (just be brief, don't claim it)
7. 5 em-dashes in 154 words — 3.2 per 100w density; AI fingerprint
8. Stale signature ("SkyRun Vacation Rentals — Winter Park, Colorado") — should be "Grand County, Colorado"

Outcome: Hardwired voice_check.py linter (~/Library/Application Support/SkyRun/voice_check.py) that runs before any draft saves to Gmail. REJECTs on phrase blacklist + numbered-options structure + stale-signature fragments. WARNs on em-dash density + missing personal callback.

The Kina email (gold standard): Sent 2026-04-30 to kinacan2020@gmail.com. Specific personal callback in line 1 ("Hope the bunk-bed mattress made it from Silverthorne"), threaded prose with proper-noun details, recommendation-with-conviction, open-ended close. 119 words, 2 em-dashes — passes the linter cleanly.

Generalization: "Two things I can do" / "Whichever is useful" / "stabilized revenue projection" / "I'll keep it tight" / "single point of contact going forward" → all banned. See reference_voice_anti_patterns.md for the full anti-pattern list.

👍 Patterns Joseph approves (8 most recent, last updated 2026-04-26)

All 8 👍 items below were INFO/FYI context flags (no email body). Pattern signal: Joseph wants live-ea to surface these inbound signals as approval-queue items rather than drop them silently.

1. Inbound bounce notification (bounce-lbrenner 👍) — "INFO: Email bounce — lbrenner@centurylink.com (SmartLead cold outreach)" → flag invalid email + propose action (SmartLead removal + SoT flag).
2. Inbound bounce notification (bounce-lwidman 👍) — same pattern, lauren.widman@siegfried.com.
3. Inbound bounce notification (bounce-twebb 👍) — same pattern, twebb@kslaw.com (server-side rejection, not just bad address — note the distinction in context).
4. Rachel-shared spreadsheet alert (rachel-spreadsheet-share 👍) — "INFO: Rachel shared 'Winter Park Homeowners' spreadsheet with you" → flag the share + proposed use (DNC source, walkthrough prep).
5. Calendar update from Rachel (rachel-weber-walkthrough 👍) — "FYI: Rachel updated Weber walkthrough — Mon Apr 27, 9am–10am MDT" → no reply needed, just track on calendar.
6. Hadank follow-up flag (hadank-rachel-followup 👍) — Rachel's reply to Joseph's open-questions email summarized as a context flag.
7. Rachel "Documents" thread flag (rachel-documents-docusign 👍) — DocuSign + onboarding docs delivered.
8. Sangma extension issue flag (sangma-extension 👍) — Rachel flagging Joseph's extension getting customer-service routing.

Generalization for future drafting:

Baseline voice guidance (from memory archaeology, pre-feedback)

Until feedback data accumulates, live-ea should default to these baseline patterns observed from Joseph's actual emails:

Prospect replies (warm, brief)

Internal team (concise, low ceremony)

Realtor correspondence (professional, warm)

How to apply (for live-ea)

Before drafting ANY reply:
1. Read this full file
2. If there's a 👎 pattern that matches what you'd draft, don't draft — flag for review instead
3. If there's a 👍 pattern, lean into it but don't literally copy — generalize the voice
4. Default to the baseline voice guidance above when the feedback sections are empty

Wiring status