Program Note Margin Afteruse Receipt Lens

This lens checks that audience-authored marginalia on a lobby program cannot later be spent as clean audience endorsement, sponsor quote approval, archive custody release, or broadcast reenactment permission unless the game preserves the original program row, writer or explicit absence, seat/show context, cited annotation scope, requested afteruse, harmed claimant, proof bridge, selected posture, after-state, and future route effect.

Boundary: promptbook margin notes concern internal blocking and actor intent; lobby-poster quotes are printed promotional copy. This lane owns only handwritten audience reaction and attendance/quotation custody.

Entry Oracle

entry_state:
  trigger_kind: state_pressure
  source_margin_note_row_visible: true
  writer_visible_or_explicit_absence: true
  seat_and_show_context_visible: true
  cited_annotation_scope_visible: true
  requested_afteruse_visible: true
  harmed_claimant_visible_or_explicit_absence: true
  proof_bridge_or_explicit_absence_visible: true
  future_reader_consumes_margin_state: true
  player_can_certify_restrict_bridge_reopen_split_quarantine_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_program_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry is driven by fixed time, raw program totals, dashboard health, or a margin note with no named future reader trying to consume it.

Checks

1. Docket Preserves Margin Note Custody And Afteruse

program_note_margin_docket:
  source_margin_note_row: required
  writer_or_absence: required
  seat_and_show_context: required
  cited_annotation_scope: required
  requested_afteruse: required
  future_reader_or_route: required
  harmed_claimant_or_absence: required
  proof_bridge_or_explicit_absence: required
  selected_margin_posture: required
  margin_afteruse_state_after: required
  future_reader_or_route_effect: required
  counter_deltas: required
  universal_clean_margin_note: false

2. Review Branches Diverge

Required branch families:

  • certify_margin_scope;
  • restrict_margin_reader;
  • attach_writer_bridge;
  • reopen_harmed_performer_note_claim;
  • split_annotation_from_consent_custody;
  • quarantine_margin_afteruse;
  • false_margin_default;
  • future_effect_any.

Each branch must carry relief, cost, and future route effects rather than a generic clean approval.

3. Default Mutates Future Play

false_program_note_margin_default:
  false_clean_margin_note: true
  source_margin_note_row_or_absence: required
  hidden_or_overbroad_annotation_scope: required
  capturing_reader_or_route: required
  harmed_claimant_or_absence: required
  margin_afteruse_state_after: false_clean_default
  future_reader_effect: recovery_only
  counter_deltas_min: 3
  durable_mutation: true

Progress Metric

Satisfied when the sibling TypeScript binding, focused card/rite/event content, and a lens-scoped durable replay show one selected branch changing named counters and future route state without treating a program note margin as universal consent.

Replay Evidence

latest_replay:
  session_id: lens-storyteller-lens-program-note-margin-afteruse-receipt-v1-20260711t1852z-certify-scope
  seed: program-note-margin-afteruse-20260712c
  replay_path: lens/replays/program-note-margin-afteruse-receipt.certify-scope.replay.json
  selected_rite: storyteller.rite.program_note_margin_afteruse_review.v1
  selected_branch: certify_margin_scope
  required_flags:
    - margin_note.branch.certify_margin_scope
    - future_route.margin_scope_required
  required_counter_mutations:
    marginNoteProgress: ">= 2"
    futureRouteCost: ">= 1"