CedarCopilot wants to merge 2 commits into staging from chore/f8-eval-harnesses
Not deployed
Libra has no production signal for this change yet because it has not deployed. Libra checks hourly for 3 days after each deploy.
Three harnesses built during the F8 workstream. Each one answered a question we were about to ship a fix for, and each time the answer was "not that". Committing them so the evidence outlives the session , the harnesses are reusable and the findings are the expensive part.
Question: why do vendor-notification conversations get typed Deals? (290 correctly-typed vendor conversations produce 1 task between them; 117 typed Deals produce 10.)
Answer: the classifier isn't confused, it's answering a different question. Of 126 Deals classifications on vendor-dominated conversations, only 3 mention the sender being automated. It classifies the deal described inside the notification body , and it's right about the content and wrong about the object. A Fathom recap genuinely is a sales-meeting summary, and the Deals procedure literally lists "product demos [COMPANY] is giving to prospects." The instructions never say whose conversation it is.
The template gap is real and propagated , 0 of 97 Vendor AOPs mention PandaDoc, 26 still carry the seed's exact (Zoom, Gong, ChiliPiper) line , but it is not the driver. Where the vendor category was considered it was rejected on content grounds, never for lack of the tool's name.
A candidate <automated_notification_rule> fixes 3 of 5 positives with all 4 controls at 6/6, and still fails the commonest production shape (recap stream) at 0/6.
Also surfaced: selection is one-event, not just one-shot , 84% of classifications run with a single event visible, on streams that later grow to 400+. And finalize-steps.ts:144 classifies without calling logToolCall, so onboarding backfills leave no trace at all.
Question: is "cancel open tasks when a deal closes" safe as a playbook instruction?
Answer: only after the linked-deal blocks shipped. Before that the best variant was 7/45 false cancellations and a blanket rule wiped 10/10 reactivations. After, one variant reaches 0/45 with every control clean , but under-cancels at 5/15 recall. Safety objection answered; effectiveness not.
Question: can prompt or schema wording stop company NAMES being stored where a domain belongs?
Answer: no. Schema-only moved one case by one trial in eight. Schema+instruction fixed one case while its near-identical sibling stayed at 0/8 , the difference was the case, not the variant.
Customer-side data is anonymised to .example; vendor names stay real. A fictional signing tool measures brand recognition rather than the classification rule.
The unit of analysis is the CASE. Trials within a case are repeats of one prompt, never pooled into an N, and no p-values , every one of these samples is far too small.
No production code changes. No database writes.
š¤ Generated with Claude Code
https://claude.ai/code/session_01NVHnt2pEEjhVwSyhkcaxoC
This PR adds three reusable instruction-evaluation harnesses, frozen prompt baselines, and production-derived cases for AOP classification, closed-deal task cancellation, and domain return shapes.
kept outcomes.The PR is not safe to merge until the invalid prompt extraction, divergent AOP scoring, and committed production customer data are corrected.
The deal-close results are generated without most of the production system prompt, invalid AOP selections can be counted as successful no-ops, and the domain
Libra has not measured any production surfaces for this change yet.