# Conformance fixtures

Byte-level test vectors for plexus, per `ARCHITECTURE.md` §7.1.

Each fixture is a directory:

```
fixtures/<scenario>/
  ├── meta.toml          # scenario description, source, capture date
  ├── inputs.toml        # identity seeds, parameters, RNG seeds (deterministic)
  ├── expected/
  │     ├── 001-*.bin     # byte-exact captures from a running reference
  │     └── 002-*.toml    # human-readable decodings for diffing
  └── README.md
```

`inputs.toml` provides deterministic seeds so the implementation can be re-run
reproducibly. `expected/*.bin` are byte-exact captures from a running Python
reference (or RetiNet). Treat committed fixtures as **immutable**; re-capture
only when the spec changes.

## Status

No fixtures are committed yet. Capturing them requires a Python `RNS` reference
driven by the capture harness (`capture/`, §7.2), which is **not** installed in
the current environment. This is a Phase 1 task (§11.1):

1. Stand up a deterministic Python `rnsd` (pinned identity seeds).
2. Capture P0 `wire/header` and `wire/announce` vectors.
3. Commit them here and assert the plexus encoder reproduces them byte-for-byte
   via [`plexus_vectors::compare`](../src/lib.rs).
