open-standards/wai/live-conformance/influence
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 82fa790c77 wai: influence corpus README, independent Python verifier, and settlement_verify reads attribution lines
influence_verify.py is the second implementation of extensions/influence.md: it verifies each
session with contribution_verify.py, regenerates every conditioned step, reads usage statements
with ai_usage_verify.py and statements with settlement_verify.py (now amended for kind 2 lines
and their bases), and computes every share, line and report itself. Registers
wai.media.influence (registry, wire identifiers, SPEC §5, CHANGELOG, CI step, export); the
settlement corpus's reserved-line vector becomes a line whose basis is not given.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 20:04:39 -04:00
..
README.md wai: influence corpus README, independent Python verifier, and settlement_verify reads attribution lines 2026-10-21 20:04:39 -04:00
vectors.json

live-conformance/influence — influence attribution

The corpus of extensions/influence.md §10, in one file, vectors.json: the model files its sessions generate with (models, each its sha256 and its file as text), and three kinds of vector, each with the outcome a verifier gives it.

  • cases (§8.1): a policy (tier); a contribution case, as the contribution corpus writes one (its session, memberships, record, disclosed steps with their proofs, map, openings, the RGB8 states it holds in hexadecimal, the model files it holds by SHA-256, and its origin claims), whose states also hold the reference images and whose model files also hold the adapters; the conditioning records, the terms and the catalogues it holds, each as a JSON text; and the attribution, a JSON text.
  • statements (§6.2): a settlement statement (WSS1) in hexadecimal; the acknowledgements it settles (records, each its record in hexadecimal and the item list of each of its entries); and the names of the cases given beside it as its attributions (given).
  • reports (§7.2): a report as a JSON text, the owner's terms, and the name of the statement an auditor holds (audit), or null for a report verified by its owner alone.

Influence equivalence. For each vector, a conforming verifier reaches the outcome it states:

  • refuse: the reason and where, at: a case's ["contribution", …] (contribution's place), ["terms", i], ["catalogue", i], ["conditioning", i], ["conditioning", i, "reference", j], ["attribution"], ["attribution", "model", k], ["step", i], ["shares"], ["shares", k] or ["policy"]; a statement's settlement places, ["basis", k, …] or ["given", i, …]; a report's ["report"], ["report", "output", i], ["terms", i] or ["statement", …];
  • accept: for a case, the statements of §8.3 (the tier, the record and attribution link hashes, each conditioning record's status, weights and references' preferences, the computed and stated shares and whether they were compared, each owner bucket's tier, and the estimates as stated); for a statement, settlement §8.3's figures with its attribution lines and its bases; for a report, its owner, its amount and each output's basis and amount.

A verifier that reaches another outcome, reason, place or statement does not conform.

Provenance. wai_influence_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, brush stroke and reference image is SHA-256 output of a label, every generated picture is made by wai.generate.spectral, alone or under wai-influence:spectral-blend, with the model file of its conformance vector (wai-rs/tests/vectors/generate/generate_spectral_model.json, held here byte for byte in models) or with a second model file written from it in code (other colour offsets and a lower top frequency, also held 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, and every settled object by a content hash that is a label's SHA-256: no object's bytes are in the corpus, and none is decoded.

python3 -I ../influence_verify.py .