# vyre-conform schema
## Purpose
vyre-conform is the discipline that prevents vyre from degrading as it grows.
It acts as a compiler for contributions.
## Directory map
- `regression/` — human-curated minimized repros
- `agent_accepted/` — gate-passed, human-approved agent tests
- `corpus/` — shared fuzzing inputs
- `tests_generated/` — gitignored, materialized on demand
- `src/spec/` — specification: ops, tables, invariants, laws, categories, versions, registry
- `src/archetypes/` — archetype definitions
- `src/mutations/` — mutation catalog
- `src/oracles/` — oracle implementations
- `src/harnesses/` — conformance harnesses H1..H10
- `src/templates/` — compile-time included templates
- `src/minimize/` — test case minimizers
- `src/generator/` — test generator
- `src/reference/` — reference interpreter (Layer 3)
- `src/layers/` — enforcement wiring
## Committed-vs-generated rule
Only the spec, archetypes, and harness definitions are committed.
Generated tests live in `tests_generated/` and are gitignored.
## Provenance format
Every generated file carries a header comment with generator version,
seed, and timestamp. See `src/generator/provenance.rs`.
## Spec-of-the-spec pointer
The canonical registry is `src/spec/registry.rs`.
## Contribution flow overview
1. Declare the op in `src/spec/ops/`.
2. Add its table in `src/spec/tables/`.
3. Register it in `src/spec/registry.rs`.
4. Run the generator to materialize tests.
5. Pass all harnesses.