Cue Authority Ledger / 提示权总账机制

This mechanism prevents several scoped cue records from becoming one clean universal authority merely because they point at the same cue.

It is a cross-object mechanism. Object-specific packets decide whether a pencil mark, headset call, standby slip, cue sheet, promptbook note, or light-cue row survives within its own boundary. The ledger begins after that point and decides how conflicting surviving rows may be consumed together.

Core invariant

same cue != same speaker != same timecode != same version != universal execution authority

Required inputs

entry_state:
  trigger_kind: state_pressure
  pencil_source_row_visible: true
  headset_source_row_visible: true
  standby_source_row_visible: true
  cue_sheet_source_row_visible: true
  current_speaker_visible: true
  version_conflict_visible: true
  operator_timecode_bridge_or_explicit_absence_visible: true
  harmed_understudy_visible_or_explicit_absence: true
  future_reader_consumes_authority_state: true
  player_can_reconcile_split_preserve_bridge_protect_quarantine_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_cue_count_trigger: true
  no_dashboard_or_lens_health_trigger: true
cue_authority_crossread_input:
  source_cue_rows: required_multiple_named_rows_for_same_cue
  current_speaker: required_or_explicit_absence
  version_conflict: required
  operator_timecode_bridge_or_absence: required
  harmed_understudy: required
  future_reader: required
  requested_cue_use: required
  selected_posture: required

Entry remains invalid when a raw count is the only pressure, when rows concern different cues, or when no future reader will consume the result.

Seven exact runtime-bound cards

exact_cards:
  - storyteller.card.cue_authority_crossread_docket.v1
  - storyteller.card.cue_authority_source_rows.v1
  - storyteller.card.cue_authority_version_conflict.v1
  - storyteller.card.cue_authority_current_speaker.v1
  - storyteller.card.cue_authority_harmed_understudy.v1
  - storyteller.card.cue_authority_future_reader.v1
  - storyteller.card.cue_authority_quarantine_register.v1

No tag alias, generic cue card, virtual bridge, duplicated card, or catalog-only substitute satisfies an exact slot.

Authority state model

cue_authority_state:
  conflict_pending: source rows disagree and no current posture is recorded
  reconciled_named_current: one named speaker/version is current with losing rows cited
  split_by_version: readers receive explicit version-specific authority
  dissent_preserved: one row remains counterproof against the selected authority
  bridged_by_operator_timecode: operator and timecode provenance connect the selected rows
  understudy_claim_protected: current use remains burdened by the harmed understudy
  quarantined_conflict: no reader may execute the cue as clean authority
  false_clean_captured: one reader captures authority while conflict is hidden
  public_correction_required: the cue must be corrected on a public surface
  harmed_understudy_route_restored: future play reopens through the displaced understudy
  recovery_only: ordinary clean cue execution is closed

Exactly seven resolution branches

  • reconcile_named_current_cue
  • split_authority_by_version
  • preserve_dissenting_cue_row
  • attach_operator_timecode_bridge
  • protect_harmed_understudy_claim
  • quarantine_conflicting_cue_authority
  • false_clean_cue_authority_default

Every branch writes:

cue_authority_resolution:
  selected_posture: required
  authority_state_after: required
  future_route_effect: required
  counter_deltas:
    relief: required_nonempty
    cost: required_nonempty
    future: required_nonempty
  durable_mutation: true
  no_universal_clean_authority: true

Counter surfaces

At least one surface from each class changes:

  • relief: cue_authority_clarity, operator_provenance, understudy_route_standing, reader_scope_clarity;
  • cost: cue_version_conflict, cue_audit_heat, schedule_repair_cost, understudy_harm, reader_dispute;
  • future: future_cue_cost, public_correction_pressure, recovery_only_cue_route, route_reader_restriction.

Success cannot reduce conflict without increasing or spending another finite surface.

Default contract

The default branch emits or arms storyteller.event.false_cue_authority_crossread_default.v1. That event offers exactly:

  • capture_first_reader;
  • force_public_cue_correction;
  • restore_harmed_understudy_route.

The event must not silently choose a current speaker, delete a dissenting row, or grant a route asset. It records how the false-clean claim changes future cue authority.

Proof boundaries

The ledger may establish which cue row a named reader may execute, cite, challenge, quarantine, or correct. It does not establish:

  • performer consent beyond the source row;
  • ownership of a voice, likeness, archive, or memorial;
  • universal sponsor, editor, archive, or route authority;
  • that the highest-ranking or earliest reader is truthful;
  • that a harmed understudy waived displacement;
  • that a timestamp alone resolves version conflict.