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: trueDocket 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_onlyReview oracle
Consent Window Expiry Review must expose these branch families:
renew_consent_windownarrow_to_original_usefresh_subject_readbackpublish_expired_scope_noticelawful_escrow_reviewsubstitute_current_carrierquarantine_future_useexpired_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: 3Progress 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.