Email: the intent contract & the golden harness

Quiet rule LIVE at Willows + Camellia since 2026-08-18 · future lanes still proposed

Born from the bed-bug email (Decision 9 in the escalation decisions doc) and Fede's rulings the same day. This is the design for how Clara handles every email, how it plugs into the escalation system and the AI-teammate vision, and how we prove it on eight years of real email before anything touches a live property.

The standing rule (ruled, not proposed)

Never again: "The general rule is to not add noise. Just acknowledging an email and forwarding to the team that's already in the email is embarrassing. Never again." — Fede, 2026-08-17. A reply whose entire content is "I'll let the team know" is worse than silence: the team already has the email, the sender learns nothing, and everyone gets an extra notification.

This is now enforced in three deterministic places (all built, held for review): the routing gate keeps fresh team-inbox mail away from Clara when the classifier says it's for the team; the templated ack ("I've passed this to our team…") is suppressed on team-monitored inboxes; and the PM forward refuses to mail the team a copy of an email already sitting in their own inbox.

The intent contract — what Clara does with each kind of email

Fede's per-intent direction, 2026-08-17, verbatim in spirit: "if the email is about a lead we can reply something useful — keep doing that. If it's a maintenance request, ack and dispatch. If it's about a renewal the renewal logic should kick in and try to help the person. Same for future delinquencies, questions about how much they owe."

Email intentContractStatus
Lead / prospectReply with something useful — answer, invite to tour, book it. Mid-conversation replies always flow, whatever the classifier says (the Aug 2 protection, kept intact).WORKS TODAY
Maintenance reportAck and dispatch: log a real work order, kick off triage/dispatch, and tell the resident what is actually happening ("logged, pest control is being scheduled") — never a contentless "passed it along". Today email maintenance produces only an intelligence note and no work order; the ack-and-dispatch lane is the build. Until it exists, the team-inbox gate keeps Clara out rather than letting her ack emptily.TO BUILD
RenewalThe renewal brain engages on email like it does elsewhere: answer questions, change lease terms only while the renewal is open, never after signing; escalate the negotiation itself per escalation policy.TO BUILD
Balance / delinquencyAnswer with real numbers ("you owe $X as of today") under the collections policy; escalate what policy doesn't cover.FUTURE LANE
Vendor / documents / reportsTeam mail. Harvest the operational intelligence, stay silent on team inboxes.BUILT (POC)
Anything unclearFresh email on a team inbox → the team has it, Clara stays out. Reply inside Clara's own conversation → always answered.BUILT (POC)

The "ack and dispatch" shape is the vision's "make it true, don't block" pattern applied to email: Clara's reply is allowed exactly when she has made its content true by acting. That is what separates a useful ack from an embarrassing one.

What is built and what it proved (all held on the review branch, nothing live)

ProofResult
Replay of all 10 real Camellia override emails through the real pipeline (logic level)Before: 10/10 to Clara (matches prod). After: the 4 fresh noise emails silent, all 4 rescues untouched, both in-thread noise cases now covered by the ack suppression instead.
The REAL Victoria emails, end to end: verbatim messages fetched from the mailbox with true headers, live identity lookups against the production database, live classifierSwitch off: reproduces the incident exactly (routed to Clara, override stamped). Switch on: the designed no-reply verdict holds. Both emails.
Adversarial: replies with stripped threading headers, "Re:"-only evidence, forwarded mail, spam misreads, strangers, unflagged mailboxesEvery ambiguous case fails toward answering — the gate can only silence an email that carries no reply evidence at all and that the classifier confidently marked as team mail.
The Aug 2 protection (dropped tour reply) + watchdogAll 12 original tests pass unchanged; the drop watchdog still pages on real misses and stays quiet on designed carve-outs. 50/50 tests green, type check clean.
Held draft PR (do-not-merge): #5826. The switch ships off everywhere; behavior changes only when a property's inbox is explicitly marked team-monitored.

The golden harness — prove it on eight years of real email

Per Fede: "the test harness needs to be expanded to include the entire scope of PropFlow, using production real data from email as the golden data set — we have 8 years to play with." Inventory confirms it: 56,022 messages in the Camellia mailbox, December 2017 → today; 33,453 are inbound from 2,437 external senders.

Golden set v1 is built (2026-08-17): 1,077 real emails, every year 2017–2026, stratified across sender types, full bodies, each labeled with its intent and the contract-correct action by eight independent labelers; a blind re-judge of 60 agreed 85–86%, with disagreements almost entirely between adjacent no-reply categories (same behavior either way).

What it says about a real team inbox: ~8 of 10 emails should get no Clara reply at all (junk 35%, vendor 18%, staff 9%, automated 5%, documents/reports/unclear the rest); only ~16% deserve a real reply (leads, tours, resident questions); the action lanes are low-volume but high-stakes (maintenance 21, balance 25, renewal 8 in-sample). And for 34% of the inbox, an always-reply bot would have produced exactly the forbidden bare ack — the never-again rule covers a third of all mail, not an edge case. (Sample over-weights human senders on purpose; the raw inbox has proportionally more lead-relay and system traffic.)

The harness reuses the methodology the honesty-layer work already proved (it is the team's standing pattern, not a new invention): replay real history → deterministic + judge verdicts → adversarial labeling → precision by intent → go/no-go on a threshold. Same shape as the mandatory ≥30-day replay gate that guards guard-touching PRs today.

PhaseWhat happens
1 · CorpusSweep the mailbox (running), separate inbound human mail from our own outbound/system mail, and sample across years and senders. Real emails only; synthetic cases added only where the corpus has a hole.
2 · Golden labelsFor each sampled email: what was it (lead / maintenance / renewal / balance / vendor / unclear) and what SHOULD Clara have done under the intent contract. Labeled adversarially by agent fleets, disagreements resolved by a second pass; Fede's thumbs in the Grading Playground become ground truth for the contested ones.
3 · Replay gateEvery email-behavior change replays the golden set through the real pipeline before merge: intent accuracy, correct action, and zero noise-rule violations, reported per intent. Below threshold → no merge. Same gate later guards the maintenance-dispatch and renewal email lanes as they're built.
4 · Live legThe Willows bench property (its own live inbox is connected) runs each scenario as a real email end to end — real webhook, real reply or real silence — before any flag flips at Camellia.

How this fits the AI-teammate vision and the escalation system

Rollout (nothing moves without Fede at each gate)

  1. Fede reviews PR #5826 + this doc. Merge = still a no-op (flag off everywhere).
  2. Flip the flag at the Willows bench only; run the live harness leg end to end; review every logged suppression.
  3. Flip at Camellia with a daily digest of everything Clara stayed silent on, first two weeks.
  4. Build the maintenance ack-and-dispatch lane, then the renewal email lane — each gated by the golden replay + a Willows live leg before Camellia.

Defects fixed along the way regardless: the forward padded with stale unrelated messages; a verified tenant labeled unverified in the forward (identity link missing on reused threads — root-cause check queued); two overrides that sent no reply while marking the email handled.

PropFlow Docs