Signal Escrow Counteroffer Lens

This lens checks that a sponsor, editor, archive desk, or public reader cannot spend a contested signal escrow as clean consent after a counteroffer appears. The player must see the source signal, escrow holder, counteroffer reader, harmed or displaced reader, proof bridge, selected posture, after-state, counter movement, and future route effect.

Entry Oracle

entry_state:
  trigger_kind: state_pressure
  source_signal_escrow_visible: true
  escrow_holder_visible: true
  counteroffer_reader_visible: true
  requested_future_use_visible: true
  harmed_or_displaced_reader_visible_or_explicit_absence: true
  proof_bridge_or_explicit_absence_visible: true
  future_reader_or_route_consumes_escrow_state: true
  player_can_accept_limit_bridge_split_quarantine_invert_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_signal_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry is driven by a fixed turn, fixed day/week, raw signal count, dashboard state, lens health, or a counteroffer without a future reader trying to consume the escrow.

Checks

1. Docket Preserves Signal, Counteroffer, And Future Reader

signal_escrow_counteroffer_docket:
  source_signal_id: required
  escrow_holder: required
  counteroffer_reader: required
  requested_future_use: required
  harmed_or_displaced_reader: required
  proof_bridge_or_explicit_absence: required
  selected_counteroffer_posture: required
  escrow_state_after: required
  future_reader_or_route_effect: required
  counter_deltas: required

2. Review Branches Diverge

Required branch families:

  • accept_public_counteroffer;
  • limit_sponsor_use;
  • attach_archive_bridge;
  • split_signal_readers;
  • quarantine_counteroffer;
  • invert_to_artist_option;
  • false_signal_counteroffer_default.

Each branch must expose a future route effect and at least three named counter deltas; no branch may declare the signal universally clean.

3. Default Mutates Future Play

false_signal_counteroffer_default:
  false_clean_signal_counteroffer: true
  source_signal_or_absence: required
  hidden_or_overbroad_signal_scope: required
  capturing_reader_or_route: required
  harmed_or_displaced_reader: required
  escrow_state_after: required
  future_reader_effect: required
  counter_deltas_min: 3
  durable_mutation: true

4. Replay Evidence Shape

The replay evidence is a game-cli export from a lens-scoped durable save named lens-storyteller-lens-signal-escrow-counteroffer-v1-*, with seed, action history, state snapshot provenance, and one action resolving storyteller.rite.signal_escrow_counteroffer_review.v1.