Documentation
¶
Overview ¶
Command corpusgen emits the cross-language validation corpus: for every message field that carries a protovalidate field rule, a valid baseline plus boundary-violating mutants (one per constraint), each rendered as proto-JSON with Go protovalidate's verdict recorded as the oracle.
The corpus is the single, generated source the Python (Pydantic) and TS (Zod) parity tests consume — no rule is restated by hand. Go protovalidate is the requirement's only executable form, so its verdict defines each case. Scope is FIELD-level rules only: cross-field message CEL is server-authoritative and not represented here (a field mutant may incidentally also trip a message CEL — that is fine; the field-level violation is what the clients are expected to catch).
Determinism: cases are emitted in a stable order so the committed corpus is a byte-exact, drift-gated artifact (regenerate: go run ./conformance/corpusgen).