Eval Labs data is designed to preserve prompt context, run source, Lucia response, layered review judgment, lifecycle state, tester identity, and—on newly executed runs—captured Lucia runtime/model provenance.
Session metadata
A session export includes metadata such as:mode remains the run mechanics; runSource distinguishes whether the run came from the Custom launcher or the Auto-generated launcher.
Controlled batch readiness runs also rely on the same run/session lifecycle, but their product meaning is different: they are platform readiness evidence, not normal evaluator-facing tests.
Registry Diagnostics reads existing session/run/review evidence and derives dataset membership and review-lane suggestions from it. Those suggestions are diagnostic output, not saved labels.
Behavioral Observatory labels are separate persisted records when saved through the Behavioral Observatory flow.
Cases
Each prompt becomes a case. A case contains:orderIndex must remain stable.
Prompt results
Prompt results include:- draft review state, including reviewer input and suggestions
- saved review state
- saved timestamp
- saved-by tester identity
- completion/dirty state derived from saved vs draft review
savedBy: null.
That is expected.
A saved review should include savedBy.
Runtime and model provenance
Eval Labs production targets Lucia Engine Development at:/admin/operator-focus response as the evaluated answer. Eval Labs captures that evidence as runtimeProvenance for new runs, persists it on the case, and mirrors the latest captured value in the session metadata. The JSON session export contains both records, so the full captured evidence travels with JSON exports. Current CSV and Markdown exports do not include the full provenance object.
The current stored object uses these exact fields:
model_tasks item may contain:
configured_model records the Engine configuration. resolved_model records the provider-resolved model captured from the Engine response. A configured model alone does not prove that a model ran. model_invoked and deterministic_path are complements: they record whether any model task was attempted. fallback_used is independent and may be true with either state. Task evidence separately proves whether a provider response arrived, parsing succeeded, and a resolved model was captured.
Live verification on 2026-07-10 produced this evidence:
Confirmed routing drift
Configuration and deployment evidence establishes that the confirmed uninterrupted Eval Labs production routing drift toward Staging began at2026-05-04T16:21:35Z. Routing was corrected to Development and live-verified on 2026-07-10.
That interval is a routing-history fact, not proof that every individual historical run used Staging. Only per-run captured provenance can establish the runtime used by a specific run. Runs without it remain explicitly unverified rather than being rewritten.
exportedBy vs savedBy
exportedBy identifies who exported the file.
savedBy identifies who reviewed/saved the individual prompt.
This distinction matters because one person may export a run that another person reviewed.
Tester identity fields
Eval Labs stores only limited identity fields:eval_labs_role, but role metadata is product access state, not review authorship.
Nulls in exports
Some nulls are normal. Expected nulls include:Export Options and Example

runtimeProvenance at session and case level when it was captured; the exact current keys are defined above. Current CSV and Markdown exports omit the full object, and historical JSON exports may omit it.
Review-layer fields
Prompt reviews now support these additional fields:Employee Review object
Employee Review captures guided non-expert signal:Human Guidance Evaluation object
Human Guidance Evaluation captures a 1-5 review layer:tone, calming, naturalness, trust, usefulness, cognitiveUnderstanding, actionability, and authenticity.
Adjudication object
Adjudication captures final senior-review meaning when it exists in the review record:Review lifecycle object
Run lifecycle finalization is stored at the session level:Supabase persistence contract
The Supabase persistence layer stores the run and item contract in three places:eval_run_items.payload.promptRecord embeds the full prompt review record, including saved/draft state, suggested review, employee review, Human Guidance Evaluation, adjudication metadata, canon candidate signal, tester identity, and dirty/completion state.
eval_item_reviews is still written for review rows, but hydration prefers the embedded eval_run_items.payload.promptRecord instead of relying on fragile review-table reads.
Behavioral Observatory labels are stored separately:
- 60 ready runs
- 3,000 expected prompts
- 3,000 run items
- 3,000 non-empty Lucia responses
- 3,000 reviews for the tested reviewer id

