Consent Window Expiry Receipt Lens / 同意窗口到期回执 Lens

This lens observes whether Consent Window Expiry Receipt and Consent Window Expiry Receipt keep scoped consent from becoming permanent permission.

It is a consent-afteruse lens. It does not re-decide consent debt, class mandate drift, stay relay, sponsor warranty, or contract readback. It proves that expiry and future consumption are visible before a later reader treats a consent row as current.

Observable promise

A passing implementation must show:

  • source consent row;
  • original use surface;
  • expiry condition or explicit absence;
  • attempted future use;
  • subject, delegate, or explicit absence;
  • proof bridge or explicit absence;
  • excluded reader or explicit absence;
  • selected expiry posture;
  • consent state after;
  • future reader or route effect;
  • durable default when expired, stale, scoped, or unsupported consent is consumed as current permission.

The lens fails if implementation stores only signed, approved, waived, current, legal, delegate consent, or sponsor release.

Entry oracle

entry_state_required:
  trigger_kind: state_pressure
  source_consent_row_present: true
  original_use_surface_visible: true
  expiry_condition_or_explicit_absence_visible: true
  attempted_future_use_visible: true
  subject_or_delegate_or_explicit_absence_visible: true
  proof_bridge_or_explicit_absence_visible: true
  excluded_reader_or_explicit_absence_visible: true
  future_reader_consumes_consent_state: true
  player_can_renew_narrow_readback_publish_escrow_substitute_quarantine_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_consent_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Docket oracle

Consent Window Expiry Docket or equivalent must expose:

consent_window_expiry_docket:
  source_consent:
    source_row_id: <stable id>
    source_surface: consent_debt | fan_mandate | class_mandate | stay_notice | sponsor_copy | broadcast_contract | memorial_consent | route_asset_custody | equivalent
    original_subject_or_delegate: <subject delegate or explicit_absence>
    original_use_surface: live_air | recap_clip | sponsor_package | public_statement | lawful_annex | route_unlock | memorial_use | oxygen_haircut | equivalent
    original_reader_scope: public | lawful | sponsor | archive | fan_public | route_asset | split | explicit_absence | equivalent
    original_proof_bridge_or_absence: signature | witness_oath | public_receipt | lawful_seal | archive_stamp | checksum | sponsor_sideletter | explicit_absence | equivalent
  expiry:
    expiry_condition: one_use_only | until_rebuttal | until_release | until_public_notice | until_route_change | until_subject_readback | until_review | unknown | explicit_absence
    expiry_state_before: current | expired | stale | disputed | unsupported | hidden | explicit_absence
    review_condition_state: satisfied | unsatisfied | contested | missing | explicit_absence
  attempted_future_use:
    future_use_surface: live_air | recap_clip | mirror_relay | sponsor_afteruse | management_report | route_unlock | ending_scar | broadcast_reality | equivalent
    future_reader: <reader route desk or explicit_absence>
    beneficiary_of_false_current_consent: sponsor | management | archive | editor | producer | route_claimant | public_stability | explicit_absence
    excluded_reader_or_absence: artist | subject | fan_public | lawful_reader | sponsor | archive | witness | route_asset | explicit_absence
  resolution:
    selected_posture: renew_consent_window | narrow_to_original_use | fresh_subject_readback | publish_expired_scope_notice | lawful_escrow_review | substitute_current_carrier | quarantine_future_use | expired_consent_default
    consent_state_after: renewed_with_cost | original_use_only | readback_required | public_notice_required | lawful_escrowed | substitute_required | quarantined | false_current | recovery_only
    future_reader_or_route_effect: accepted_with_cost | original_use_only | notice_required | lawful_only | substitute_required | blocked | hostile | costlier | contradiction_pending | recovery_only

Review oracle

Consent Window Expiry Review must expose these branch families:

  • renew_consent_window
  • narrow_to_original_use
  • fresh_subject_readback
  • publish_expired_scope_notice
  • lawful_escrow_review
  • substitute_current_carrier
  • quarantine_future_use
  • expired_consent_default

Each branch must include relief, cost, and future_effect_any.

Default oracle

Expired Consent Default must record:

expired_consent_default:
  event_id: storyteller.event.expired_consent_default.v1
  source_consent_row: <source row id or explicit_absence>
  false_current_consent_claim: <claim>
  original_use_surface: <surface or explicit_absence>
  attempted_future_use: <surface>
  expiry_gap: expired | hidden | unsupported | review_missing | subject_readback_missing | out_of_scope | explicit_absence
  subject_or_delegate_state: stale | missing | captured | hostile | explicit_absence | equivalent
  proof_bridge_state: missing | expired | out_of_scope | false_receipt | explicit_absence | equivalent
  excluded_reader_or_absence: <reader or explicit_absence>
  beneficiary_of_false_current_consent: sponsor | management | archive | editor | producer | route_claimant | public_stability | explicit_absence
  consent_state_after: false_current | original_use_only | disputed | hostile | lawful_only | public_notice_required | recovery_only
  future_reader_or_route_effect: blocked | hostile | costlier | contradiction_pending | original_use_only | lawful_only | notice_required | recovery_only
  counter_deltas_min: 3

Progress metric

consentWindowExpiryReceiptProgress = 0..8:

  • 0: no source consent row is visible.
  • 1: source consent row and original use surface are visible.
  • 2: expiry condition or explicit absence is visible.
  • 3: attempted future use and future reader are visible.
  • 4: subject/delegate and proof bridge are visible or explicitly absent.
  • 5: excluded reader and false-current beneficiary are visible.
  • 6: docket separates source consent from future consumption.
  • 7: review resolves a branch with relief, cost, and future effect.
  • 8: expired or unsupported consent arms a durable default or recovery-only scar.

Non-goals

  • Not a timer lens.
  • Not consent debt transfer.
  • Not class representative mandate drift.
  • Not stay notice relay.
  • Not valid when a future reader consumes consent without expiry state.