open-standards/wai/live-conformance/exploration/README.md
Transaction Science bcef9a5671 wai.media.exploration: descriptors, archives that replay, default-distance, collection statements, taste priors, rankings and picks (CO2, CO3)
The extension, the wai-rs module behind the feature exploration, the corpus
live-conformance/exploration/ written by wai_exploration_vectors gen, its second
implementation exploration_verify.py, the CI step, and the registry, SPEC and
CHANGELOG entries.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 13:41:14 -04:00

37 lines
2.3 KiB
Markdown

# live-conformance/exploration — exploration and declared taste
The corpus of [`extensions/exploration.md`](../../extensions/exploration.md) §14, in one file,
`vectors.json`:
- `model`: the model file of `wai.generate.spectral` every generation uses, by its `path` below
`wai/` and its `sha256`;
- `generations`: a `prompt`, `seed`, `steps`, `width` and `height`, and the `sha256` of the
picture the generator makes (the check of the extension's Appendix A);
- `descriptors`: a buffer, given as `hex` or as a `generate` instruction (`prompt`, `seed`,
`steps`, `width`, `height`), its `width` and `height`, and its descriptor vector (§3);
- `cases`: each a `policy` (`replay`: `required` or `elites`; `objective`: `required` or
`optional`), its `records` in order as JSON texts, and what the verifier `held`: `models` (the
SHA-256 of each model file it holds; the one file above, or none), `priors` (each taste prior
file's text, held by the SHA-256 of its UTF-8 bytes) and `samples` (each buffer, as `hex` or a
`generate` instruction, held by its SHA-256).
**Exploration equivalence.** For each case, a conforming verifier reaches the outcome it states:
- `refuse`: the `reason` of §13 and the `record`, the position of the record refused;
- `accept`: the `statements` of §12.3, one per record, exactly as written.
A verifier that reaches another outcome, reason, record or statement does not conform.
**Provenance.** `wai_exploration_vectors gen` writes `vectors.json` from records authored in
code: every key is SHA-256 of the corpus's label and an index, every picture is made by
`wai.generate.spectral` from the committed model file `wai-rs/tests/vectors/generate/generate_spectral_model.json`
or derived from one by a rule written in the generator (a corner inverted), the remaining
buffers (a pixel, a row, a column, flat, a checkerboard, a ramp) are written as formulas there,
every time is a constant, and Ed25519 signing is deterministic, so the file is the same bytes on
every machine. The three taste priors are written in code with hand-set weights; none is trained
on anyone's choices. The generator `urn:example:generator:float-1` and the aesthetic model a pick
names stand for any generator and model that are not exact: nothing in the corpus runs them.
```
python3 -I ../exploration_verify.py .
```