House Curtain Tie Afteruse Receipt Lens

This lens checks that a curtain-tie tag from one house-flow correction cannot be consumed later as clean exit authority after the aisle map, responsible steward, or blocked patron has changed.

Entry Oracle

entry_state:
  trigger_kind: state_pressure
  source_curtain_tie_visible: true
  original_exit_row_visible: true
  original_house_steward_visible: true
  original_aisle_or_explicit_absence_visible: true
  requested_afteruse_visible: true
  afteruse_caller_visible: true
  aisle_change_or_explicit_absence_visible: true
  blocked_patron_visible_or_explicit_absence: true
  future_gate_consumes_tie_state: true
  player_can_certify_attach_split_reopen_notice_quarantine_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_exit_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Checks

1. Docket Separates Prior Curtain Tie From Current Exit Authority

house_curtain_tie_afteruse_docket:
  source_curtain_tie: required
  original_exit_row: required
  original_house_steward: required
  original_aisle_or_absence: required
  tie_state_before: required
  requested_afteruse: required
  afteruse_caller: required
  aisle_change_or_absence: required
  proof_bridge_or_absence: required
  blocked_patron: required
  selected_afteruse_posture: required
  curtain_tie_afteruse_state_after: required
  future_gate_or_route_effect: required
  counter_deltas: required

2. Review Branches Diverge

Required branch families:

  • certify_current_exit_steward;
  • attach_curtain_tie_afteruse_receipt;
  • split_original_and_afteruse_stewards;
  • reopen_aisle_hearing;
  • publish_aisle_change_notice;
  • quarantine_curtain_tie_afteruse_claim;
  • false_curtain_tie_afteruse_default;
  • future_effect_any.

3. Default Mutates Future Play

false_curtain_tie_afteruse_default:
  false_clean_tie_claim: true
  source_curtain_tie_or_absence: required
  hidden_or_stale_exit_conflict: required
  capturing_caller: required
  blocked_patron: required
  curtain_tie_afteruse_state_after: required
  future_gate_effect: required
  counter_deltas_min: 3
  durable_mutation: true

4. Runtime Rollup Status Is Explicit

The runtime packet must include seven exact starter cards, a state-pressure review rite with seven divergent branches, a false-afteruse default event with three durable outcomes, a focused Jest runtime test, and a durable lens-scoped replay exported from the gameplay CLI.

5. Durable Replay Evidence

lens_id: storyteller.lens.house_curtain_tie_afteruse_receipt.v1
session_id: lens-storyteller-lens-house-curtain-tie-afteruse-receipt-v1-20260717t2101z-runtime-default
seed: house-curtain-tie-afteruse-20260717a
replay_path: lens/replays/house-curtain-tie-afteruse.default.replay.json
expected:
  source_curtain_tie_visible: true
  afteruse_caller_visible: true
  false_afteruse_default_can_be_armed: true
  durable_default_outcome_visible: true