Clara Quality Loop — Team Guide

How Clara's quality machinery works, how to use it day to day, and what we learned building it. Written for Gera; useful for anyone touching Clara. Updated 2026-08-23.

The loop in one line

You grade a real conversation the grade becomes a permanent test a CI gate replays all tests on every PR a judge grades live conversations recurring failures become prompt principles

Human judgment enters once — a thumbs-up or thumbs-down on a real conversation — and the system turns it into standing protection. Nothing regresses silently; every mistake fixed once stays fixed for every property.

How to use it daily

1. Grade conversations (the main habit)

2. What happens to your 👎 (automatic)

A nightly pipeline picks up new 👎 grades, drafts a regression test from the real conversation (identity replaced with a synthetic one, PII scrub fails closed, quotes anchored byte-exact), lands it in the shared test library, stamps a new version, and syncs it into the app. You get a one-line note in #alerts. No PRs to review, no approvals — the annotation was the approval.

Positive grades feed pass-tests too (locking in behavior we like), prioritized where the machine and human disagreed.

3. Adding or editing tests by hand

4. What guards your PRs

What's live vs. in flight

PieceStatusNotes
Quality Desk (grading UI)LIVERebuilt this week after Fede's first real session — see learnings below
Decision Line visualizationLIVEOn every conversation page
Regression gate (leasing)LIVE, advisoryRuns every PR; not yet in branch protection
👎 → test pipelineMERGED, OFFAwaiting arm + test-repo credentials; first supervised run planned
Live judge (real LLM grading)BUILDINGCalibrating against ~385 human verdicts, 70/30 held-out split; today's placeholder is a loop-detector only
Principle ladder (grades → prompt rules)PARKEDFour branches under test on a bench; nothing touches prod prompts
Voice safetyGAPDecision pending — see below

Findings from the first real annotation session

Where things live

ThingWhere
Grading UI/clara/playground?item=… (or right-click a message in a conversation)
Test corpusPropFlow-Technologies/cerebrus → vendored at quality-gate-poc/
Live-grade seamsrc/lib/domain/conversations/conversation-grade.ts (the judge slots in here)
Annotation playbookgrading-annotation-guide
Voice guard decisionvoice-hallucination-guard-decision
Roadmap / architectureeval-testing-roadmap · architecture-source-of-truth

Ground rules that apply to everything above: evals run on the Claude subscription, never metered API keys · no voice-path merge without Fede's explicit approval · test identities are always synthetic, PII scrubbing fails closed.

PropFlow Docs