Skip to content

PLAN — P9d Pydantic Case-Result Receipt Import (2026 Q2)

  • Date: 2026-05-03
  • Owner: Evidence / Product
  • Status: Implemented
  • Scope: Add importer-only support for the P9b/P9c reduced Pydantic Evals case-result artifact. This is not a Trust Basis claim, not a Trust Card row, not a Harness recipe, not a public receipt family, and not a Pydantic integration claim.

1. Decision

P9d adds the smallest compiler-path support for Pydantic Evals:

pydantic-evals reduced case-result JSONL
  -> assay evidence import pydantic-case-result
  -> assay.receipt.pydantic.case_result.v1 receipt events
  -> verifiable evidence bundle

The import unit is the reduced artifact frozen by P9c. ReportCase remains discovery input only; it is not the receipt contract.

2. Boundary

P9d imports:

  • case_name as the only docs-backed v1 identity;
  • bounded assertion result pass/fail values;
  • bounded scalar score values;
  • bounded evaluator names;
  • optional bounded reason strings;
  • optional source_case_name / source_ref as non-identity provenance aids;
  • source artifact digest/provenance added by Assay.

P9d excludes:

  • raw ReportCase;
  • full EvaluationReport;
  • task inputs;
  • expected outputs;
  • model outputs;
  • report metadata;
  • experiment metadata;
  • trace IDs;
  • span IDs;
  • Logfire payloads;
  • prompts;
  • completions;
  • analyses;
  • failure bodies;
  • evaluator implementation/config internals.

3. Non-Goals

P9d does not add:

  • a Trust Basis claim;
  • a Trust Card row;
  • Harness gate/report behavior;
  • a public Pydantic receipt family;
  • model-correctness truth;
  • evaluator-correctness truth;
  • upstream runtime truth;
  • Logfire, OpenTelemetry, trace, or span import.

4. Claim Posture

assay.receipt.pydantic.case_result.v1 remains importer-only with trust_basis_claim: null.

Any later claim-visible work must be a separate readiness/claim slice. It must define the exact claim id, predicate, negative examples, Trust Card impact, fixtures, Harness posture, and compatibility story before implementation.

5. Acceptance

P9d is complete when:

  • the CLI imports valid reduced Pydantic case-result JSONL into verifiable bundles;
  • the schema registry lists both input and receipt schemas as experimental and importer-only;
  • the receipt family matrix keeps the lane in importer_only_receipts;
  • tests prove Pydantic receipts do not mutate current eval, decision, or inventory Trust Basis claims;
  • malformed broad ReportCase fields fail closed;
  • case_id_ref remains unsupported unless a future live-backed slice changes that boundary explicitly;
  • Harness remains unchanged.

6. Short Verdict

P9d makes the Pydantic reduced case-result lane bundleable and inspectable. It does not make Pydantic claim-visible.