open-standards/wai/live-conformance/coperformance/README.md
Transaction Science 0977db7a64 wai.live.coperformance: registry, SPEC §5, CHANGELOG, corpus README and the CI step
The capability and its ten magics in the reference registry, and the
export regenerated (registry/capabilities.json, vocab/v2.ttl and
REGISTRY.md's table); SPEC §5's paragraph and record list; the corpus's
README with its provenance; the live-conformance index; the sidecar
exclusion's reason for live-conformance; and a step in the independent
verifiers job that runs the module's unit tests, tests/co_performance.rs
and co_performance_verify.py, with the extension in the workflow's paths.

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

5.4 KiB

live-conformance/coperformance — co-performance in rooms

The corpus of extensions/co-performance.md §11: rooms in which people and an AI participant perform together and an audience joins in. Each room is a room (its WRD1 descriptor, WRG1 grants, key-log head or none, and each principal's WEV1 chain, in which the extension's statements ride as meta payloads), its WPP1 co-performance policies, the media objects the relay forwarded, and the symbolic payloads of some of them; and what a verifier states of it.

Co-performance equivalence. For each room, a conforming co-performance verifier given its descriptor, grants, key_log, chains, policies, objects (each its principal, track, group, object, digest, arrival and due) and payloads (§9.1) reaches the outcome the room states (§9.3):

  • refuse: the reason and where, at: ["room", …] with the room verifier's own place (live-rooms §9.1), ["policy", i], ["grant", i], ["record", c, i] for record i of chain c, or ["object", i];
  • accept or gap (with the gaps, each principal, first and last): the room id; the policy_digests; the intents, each its digest, principal, form, at, outcome (kept, diverged or missed) and what played (an object's track, group and object, an event by digest, or null); each participant's fidelity (announced, kept, diverged, missed); the schedules, each its digest, mode, from and turns (each segment, index, start, end, scheduled holder and role); the handovers, each its digest, at, to, and the schedule, segment and turn it passes; the floor of each object, in the order given: open, in_turn or out_of_turn, the governing mode, whether it was late, its lateness in µs and the flags of the marks naming it; and the windows, each its digest, rule, close, eligible inputs, commit, picks and credits (each step, party, ref, count), with the plurality's tally and the reactions' scores.

A verifier that reaches another outcome, reason, place, outcome of an intent, turn, floor, pick or credit does not conform.

Provenance. Generated here: wai_co_performance_vectors gen writes vectors.json from rooms authored in code as scripts of steps, from fixed seeds. Each principal's key is SHA-256 of a fixed label and the principal's index; every time is a constant (the rooms' t0 is 2026-10-21T00:00:00Z); every text is written for the corpus in English; each object's content, the AI participant's model and the draw's seed are SHA-256 of fixed labels, and the symbolic payloads are notes and a camera move written here; every origin is an .example name (RFC 2606); and Ed25519 signing is deterministic (RFC 8032), so the file is the same bytes on every machine. A refused room is the script of a good one with one step, one policy, one attribute or one object changed. The generator asserts that each room reaches the outcome it was written to have, and that the corpus gives every reason of §10, before it writes. No recorded data.

Layout

  • vectors.json: principals (the keys, by name, informative), model (the AI participant's model digest, informative) and vectors.

The rooms:

  • jam: a director with the direct power, a performer and an AI participant whose grants carry latency budgets. A schedule from 4 s trades four-bar phrases (two bars of four beats at 120 beats a minute, so 4 s a turn) between the performer and the AI participant as call-and-response pairs, and marks; a second, from 20 s, gives three-second turns and refuses. The AI participant announces an object, notes, a text line, a camera move, a second object it then plays differently, and a text line it never says: four kept, one diverged, one missed; the performer one object, kept. The AI participant's late object and its object in the performer's turn are marked by the clock; the director hands the end of the performer's second call to the AI participant, whose object then is in turn; the clock's fidelity statement states both participants' counts.
  • audience: a host with the direct and moderate powers, and four members whose grants carry audience_input 2. A plurality vote over three options, one member changing its vote and one voting after the close; a window selected by reactions over prompts and a sketch, one prompt denied by the host and left out, one reaction retracted, one prompt sent after the close; and a seeded draw over movement samples and a sketch. Each window committed, selected and credited.
  • audience_gap: the audience room with one member's prompt not delivered: the gap, and what the verifier states from what it holds.
  • One refused room for each reason of §10, each a control of one defect, among them fidelity_counts_a_divergence_kept (an intent that played something else counted kept), turn_violated (an object out of turn under refuse, forwarded), selection_counts_a_late_input (an input sent after its window closed, selected), selection_does_not_recompute (picks the committed inputs do not give), selected_input_uncredited (a pick with no credit) and late_unflagged (a late object with no mark); policies that do not read, whose signature fails, or of another room; and an input by a principal the room never admitted, which the room verifier refuses.