Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

0048: Additive selectors in value workflows

Context

Context metadata extends the Sample selector vocabulary used by generation and Recorded traces. Existing affordance vectors have the same structure and meaning, but an older implementation refuses the new context kind. The trace contract’s original reference to a fixed entry format did not distinguish its member structure from the set of supported selector kinds.

Decision

Adding a Sample selector kind is a compatible extension when existing kinds, entry members and outcome rules retain their meaning. Context therefore uses esdieff.generation/1 and esdieff.trace/1. Generation retains its target list, ordering and settlement rules. Context requires explicit selection, so default generation does not add metadata to an existing affordance corpus.

This clarifies ADR 0042: Recorded traces with independent entries. A contract identity does not promise that every implementation supports every selector kind or model meaning. Unknown kinds remain refused. Supported Context requests identify their draft and limitations in the report. Changes to required members, the meaning of an existing kind or the rules that map admission and expectations to outcomes require a new trace identity.

Considered options

A new identity for every additional selector kind would also change reports for unchanged affordance traces. It would require consumers to update their contract guards even when they never select the added kind. Keeping the identity preserves those consumers while requiring explicit use of the new capability. It does not make Context vectors replayable by older implementations.