You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#8229 stage 1 (the would-have-routed report) waits on live reviewer_vote rows accumulating. The counterfactual harness (#8221) can generate the same evidence offline TODAY: a replay campaign per provider/model over the fixture corpus yields per-fixture verdicts that map 1:1 onto ProviderReviewSignal, feeding computeProviderTrackRecords (#8228) with clearly-labeled replay-derived data while live votes mature.
Requirements
⚠️ Required pattern. Replay-derived signals must be UNMISTAKABLY segregated from live votes — separate provenance field end-to-end, never mixed into the live reviewer_vote event type. The #8221 artifacts discipline applies (cached raw outputs, deterministic seeds, budget caps); BYOK providers only behind explicit flags.
A thin adapter: replay --out artifacts → ProviderReviewSignal[] (provider = the variant modelSpec, vote from the verdict, abstentions excluded) → computeProviderTrackRecords → a rendered per-provider report.
Run the campaign for the local smoke model plus each production reviewer model (BYOK-flagged), same seed across providers so the sample is identical.
Problem
#8229 stage 1 (the would-have-routed report) waits on live reviewer_vote rows accumulating. The counterfactual harness (#8221) can generate the same evidence offline TODAY: a replay campaign per provider/model over the fixture corpus yields per-fixture verdicts that map 1:1 onto ProviderReviewSignal, feeding computeProviderTrackRecords (#8228) with clearly-labeled replay-derived data while live votes mature.
Requirements
Deliverables
Links & Resources
#8229 (stages 1-2), #8221 (harness), #8228 (computeProviderTrackRecords), scripts/counterfactual-replay.ts
Boundaries
Report-only; no routing change; replay-derived data never masquerades as live votes.
maintainer-only — model spend.