Registers the record and its five document kinds (registry export regenerated), adds the SPEC §5 paragraph and the CHANGELOG entry, the CI step beside synthesis's, the corpus README with its provenance line, and the live-conformance exclusion reason for the generated pictures. The tree test now states the duplicated last leaf's second position, which the record's count refuses (§5.1). Co-Authored-By: Claude Opus 5.5 <[email protected]>
40 lines
2.5 KiB
Markdown
40 lines
2.5 KiB
Markdown
# live-conformance/contribution — contribution records
|
|
|
|
The corpus of [`extensions/contribution.md`](../../extensions/contribution.md) §12, in one
|
|
file, `vectors.json`: the model files its sessions generate with (`models`, each its `sha256`
|
|
and its `file` as text), and the **vectors**, each a case of §10.1 and what a verifier gives it.
|
|
|
|
A case holds its `policy` (`tier`); the `session` record and its `memberships`, the
|
|
contribution `record`, the disclosed `steps` (each its `step` text and its inclusion `proof`, a
|
|
list of siblings in hexadecimal), the authorship `map`, the prompt `openings`, each as a JSON
|
|
text; the `states` it holds, each an `RGB8` buffer in hexadecimal, named by its SHA-256; the
|
|
`models` it holds, each by the SHA-256 of a file in `models`; and the `origins` it holds, each
|
|
an origin claim of [synthesis](../../extensions/synthesis.md) §3.1 as a JSON text.
|
|
|
|
**Contribution equivalence.** For each vector, a conforming verifier reaches the outcome it
|
|
states:
|
|
|
|
- `refuse`: the `reason` and where, `at`: `["session"]`, `["session", "party", i]`,
|
|
`["membership", i]`, `["record"]`, `["step", i]`, `["map"]`, `["map", x, y]`,
|
|
`["opening", i]`, `["origin", i]` or `["policy"]`;
|
|
- `accept`: the `statements` of §10.4: the `tier`; the link hashes of the `session` and the
|
|
`record`; each disclosed step's `seq`, `act`, `party`, `check` and `status`; the number of
|
|
steps `committed` and not disclosed; the shares of the `computed` and the `stated` map, each
|
|
its `samples`, its `made_by` and `directed_by` counts per party, and the counts of `unknown`
|
|
and `undisclosed` samples of each set; the record's `estimates` as stated; the `origin`
|
|
agreement (`agree`, `not-checked` or `null`); and the C2PA statement of §9.2 as its JCS text
|
|
(`c2pa`), or `null` where a step is not disclosed.
|
|
|
|
A verifier that reaches another outcome, reason, place or statement does not conform.
|
|
|
|
**Provenance.** `wai_contribution_vectors gen` writes `vectors.json` from records authored in
|
|
code: every key is SHA-256 of the corpus's label and an index, every drawn picture and brush
|
|
stroke is SHA-256 output of a label, every generated 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`), every time is a constant,
|
|
and Ed25519 signing is deterministic, so the file is the same bytes on every machine. Every
|
|
state is named by the SHA-256 of its `RGB8` samples.
|
|
|
|
```
|
|
python3 -I ../contribution_verify.py .
|
|
```
|