open-standards/wai/live-conformance/direction/README.md
Transaction Science c9cfbe3d08 direction: the framing measure and the interpolations as corpus sections of their own
Boxes at both sides of every size bound and every column and row bound, past
the edges and at the limits of a signed integer; each interpolation mode rising
and falling, with floors below zero. The size control now keeps its position,
so it fails on the size bound alone.

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

44 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# live-conformance/direction — direction records
The corpus of [`extensions/direction.md`](../../extensions/direction.md) §14, in one file,
`vectors.json`: the model file its layers are generated with (`models`, its `sha256` and its
`file` as text), the pictures given as they are (`pictures`, each its `sha256` and its `rgb8`
buffer in hexadecimal), the framing measure of §7 alone (`measures`, each a `frame` size, a `box`
and the `size` and `position` it measures), the interpolations of §5.2 alone (`interpolations`,
each its `interp`, its `from` and `to` values, `n` and `d`, and its `value`), and the
**vectors**, each a case of §12.1 and what a verifier gives it.
A case holds its `policy` (`require`); the directed `output` record and the direction `records`
it holds, each as a JSON text; the `models` it holds, each by the SHA-256 of a file in `models`;
and the `pictures` it holds, each by the SHA-256 of a buffer in `pictures`. Frames are 64 × 36
pixels at 24 frames a second, so every frame of every exact case recomputes.
**Direction equivalence.** For each vector, a conforming verifier reaches the outcome it
states:
- `refuse`: the `reason` and where, `at`: `["output"]`, `["record", i]`, `["direction", k]`,
`["layer", i]`, `["clip", i]`, `["clip", i, t]`, `["timeline"]`, `["timeline", i]`,
`["governs", i]` or `["policy"]`;
- `accept`: the `statements` of §12.4: the directed output's link hash (`output`); its `status`,
`generator` and `class`; each direction record's `kind`, `link`, `director` and `levels`; each
element's `record`, `element`, `level`, `director` and governed `frames`; the `cuts`; the frame
map, one entry per output frame, with the frames it `shows` and who it is `directed_by` at each
level; the SHA-256 of every output frame's `RGB8` samples (`frame_sha256`), or `null` where the
outcome is attested; each layer's status (`layers`); and the C2PA statements of §11.1
(`c2pa`), each its director and its JCS text.
A verifier that measures another class, interpolates another value, or reaches another outcome,
reason, place or statement does not conform.
**Provenance.** `wai_direction_vectors gen` writes `vectors.json` from records authored in code:
every key is SHA-256 of the corpus's label and an index, the drawn reference picture is SHA-256
output of a label, every other picture is made by `wai.generate.spectral` with the model file of
its conformance vector (`wai-rs/tests/vectors/generate/generate_spectral_model.json`, held here
byte for byte in `models`), the attested case's frames are SHA-256 output of a label, every time
is a constant, and Ed25519 signing is deterministic, so the file is the same bytes on every
machine. Every picture is named by the SHA-256 of its `RGB8` samples, and every output frame of
an exact case by the SHA-256 stated in `frame_sha256`.
```
python3 -I ../direction_verify.py .
```