Classifier Plan
What changes in how Clara decides whether to reply, before and after, with numbers from 639 real moments. For Gera and Fede.
2026-10-27 · v2 · after Fable, Astra, the voice memos and the turn study · nothing built yet except the rent fix and Resident Services
Keep the classifier; fix how it's set up; add one Opus check on the draft. The deciding signal is often who's already in the thread, which today's check never looks at.
Before (today)
- One topic per message, from a small model.
- Reply check: renewal, maintenance or other, and other always sends.
- Doesn't look at who's writing, who else is in the thread, risk, or whether the reply adds anything.
After
- Five questions: who's writing, thread state, kind of message, topic, risk.
- One Opus check on the draft. Sends only if all are true: known sender, nobody else on it, no risk, module on, adds value, facts check out.
- Unsure, unmapped or timed out → hold. A count of what each check blocks.
Targets are goals to measure against, not results yet.
What the study found
- Thread state decides most cases. Teammate active in the last few messages → hold or silent 84% of the time. A person took the call → silent 44 of 45.
- Kinds of message (9): a real ask 47%, an answer to our question 16%, thanks or bye 12%, an FYI 7%, ok 6%, unclear 5%, automated 3%, greeting 1%.
- Topics (10): leasing, maintenance, general contact, Resident Services, not known yet, collections, vendor, billing, move-out, renewal. 9% of messages carry two topics.
- Risks (9): money trouble, privacy, legal or dispute, safety, fair housing, hardship, waiting on a staff decision, distress, confusion. Plus "wants a person".
- "Not enough context yet" happens on 12% of messages, mostly the first turn of a call. It clears by the next message 65% of the time.
- Soft replies ("hi", "thanks"): only 20% were clean. The rest came with staff mid-thread, a risk nearby, or a person on the call.
- Reviewer agreement: who's writing 0.85 and topic 0.82 are reliable. Risk is weak at 0.39, so it gets a keyword floor that can't be argued with.
Where it sits in Fede's machine
- Gather context adds who's writing and the thread state, both from records (no model), plus the topic and the keyword risk floor.
- Should Clara speak stays thin: unknown sender, someone already on it, or a module off → stop before any draft.
- Write (Opus) returns the draft plus its own read of kind, topic, risk and value. That matches Fede's rule that judgment lives inside the writing call.
- The check on the draft (Opus, one configurable layer, every check must pass) → send. Otherwise hold, ask the team privately, or stay silent.
- Record keeps every decision and which check stopped it. That's where the counts come from.
What Fable and Astra changed
- A correct label isn't permission. The check reads the draft, not just the topic.
- Asking the same model twice doesn't catch its repeated mistakes. Instead: a keyword floor, different reviewers, and a check on the draft.
- A whitelist: a topic that maps to no module holds.
- The answer key has to be bigger and checked by people: about 1,000 messages, 300+ of them about money.
Order of work
- In flight: stop the rent leak (#22879), and make Resident Services a real module with its own switch.
- You and Fede: vote on the 40 disagreement cases on the scenario board. Those votes become the written rules.
- Build the answer key from the study's 639 moments, plus more money cases, settled by people.
- The reply check learns who's writing, thread state and the risk floor. Measured on the key before it goes live.
- The Opus check on the draft, running silently next to today's logic for a week, then one customer at a time.
- A count of blocks per check, visible to you.
Decisions still open
- Where "what's my balance?" (Resident Services) ends and collections begins.
- Whether an Off module tells the tenant "we don't handle that here", or stays quiet.
- The Friday-night case: is one "the office will reply Monday" ever allowed?
- Fede: OK for the check on the draft to sit between his writer and the send.
Try it: Clara Reply Scenarios (flip modules, vote on 40 real cases) · Research: Classifier: Fail Closed · Fede's engine: Clara, the new hire