Inventory · verified from source, git history, and workflow files · 2026-08-20
Commissioned by Fede's question: "how can we consolidate all of our eval solutions into a single standard for me and Gera?" This page is the factual ground: ten distinct mechanisms, what each covers, and where they overlap or leave holes. The consolidation decisions belong in the Quality System Plan (in draft).
| # | Mechanism | What it is | How it runs |
|---|---|---|---|
| 1 | Promptfoo suites | 56 configs in evals/ (leasing, renewals, maintenance, fair housing, adversarial…), custom subscription-auth provider, docs hub at docs/evals/README.md | bash evals/run-all.sh manually; renewal + intent subsets on nightly/weekly crons; PR fast-lanes per domain |
| 2 | Subscription eval runners | ~85 one-off TypeScript runners in TWO parallel trees: scripts/eval-*-subscription.ts (~34) and model-evals-fleet/runners/ (~40, overlapping domains) | Manual scripts, OAuth bearer, never metered keys |
| 3 | Coworker harness | 10 scenario files + LLM judge + adversarial seeds, live-loop against the Willows bench in real prod infrastructure | Manual only; hard-locked to the bench property |
| 4 | Mailbox invariants | Last-mile checks reading the real Graph mailbox (threading, duplicates, sender identity) — built after a bug the application-layer proof missed | Manual, inside the coworker harness; bench only |
| 5 | Drift tests / @sensor | 275 *.drift.test.ts files, each pinning one past incident or invariant, machine-readable @sensor tags, registry printer script | Ordinary unit tests — run in the required CI check |
| 6 | Nightly crons | 10 scheduled workflows: SMS/email stress, voice seam matrix, Camellia voice regression, renewal harness, suppression canary, ElevenLabs config + prompt drift, schedule-manifest drift | GitHub Actions cron, nightly/6-hourly/weekly |
| 7 | Voice harness | 140 scenario YAMLs, 5 driver tiers (simulate → replay → robot calls → post-call E2E → call sequences), robo-vendor caller fleet, replay corpus | Two nightly crons + manual tiers for real calls |
| 8 | Five-incident replay | adr-0054-incident-replay: five real May–June incidents pinned red/green in a manifest; CI fails if a case has no test | In the required unit-test check, fully offline |
| 9 | LLM judges | 30+ separate judge implementations, one per suite — no shared module exists; some suites keep an "-improved" judge copy alongside the original | Inside whichever suite owns each copy |
| 10 | Escalation CRUCIBLE | Graded ship-gate for the escalation system against a numbered R1–R130 requirements ledger; guard-railed live mode with kill file | Logic mode in CI; live mode manual, bench only |
scripts/eval-* vs model-evals-fleet/) — and the second tree is not in git at all: no history, no review, invisible to every CI gate.no-eval-needed: in the PR body) needs no sign-off. It has already been widened twice reactively after prompt changes slipped past its filters.Method: repo source + git history + live branch-protection API, gathered 2026-08-20. Companion incident context: the Camellia RCA.