Lou Ke Caption Switch Hearing / 楼刻字幕切换听证

storyteller.rite.lou_ke_caption_switch_hearing.v1 is the strict character overlay for Lou Ke. It proves that the operator is the actual person card and that a complete caption row reaches a selected branch. It does not replace Caption Witness Hearing, whose generic and explicit-absence paths remain part of the reusable Caption Witness mechanism.

Exact assignment contract

All eleven slots are required, exact-ID checked, and in-hand checked:

rite_id: storyteller.rite.lou_ke_caption_switch_hearing.v1
requires:
  ledger: storyteller.card.caption_witness_ledger.v1
  switchboard_key: storyteller.card.caption_switchboard_key.v1
  source_surface: storyteller.card.lou_ke_source_surface.v1
  source_holder_or_absence: storyteller.card.lou_ke_source_holder.v1
  source_proof_or_absence: storyteller.card.lou_ke_source_proof.v1
  caption_text_or_absence: storyteller.card.lou_ke_caption_text.v1
  caption_language_channel: storyteller.card.lou_ke_caption_channel.v1
  caption_operator_or_absence: storyteller.card.lou_ke_caption_switcher.v1
  excluded_or_harmed_reader: storyteller.card.lou_ke_harmed_reader.v1
  pressure_actor: storyteller.card.lou_ke_pressure_actor.v1
  future_reader_or_route: storyteller.card.lou_ke_future_reader.v1

No generic operator, famous handler, explicit-absence card, parent-mechanism tag, or off-hand object may substitute for storyteller.card.lou_ke_caption_switcher.v1. Missing one support row or omitting a selected option must fail resolution. Every option repeats the eleven required slot/card IDs, so the selected branch is validated against the exact assigned packet.

The overlay is a one-shot quick rite with duration_days: 0, repeatable: false, and no implicit expiry hook. It opens from caption state pressure, not a fixed turn, day, raw caption count, dashboard, or lens-health trigger.

Durable branch boundary

The exact ordered choice IDs are:

IndexChoice ID
0recruit_switcher
1protect_access_operator
2retain_one_run
3sponsor_safe_switch
4split_language_tracks
5archive_escrow
6publish_fan_relay
7suppress_or_autoclean

Choice index 0 leaves lou_ke.state.recruited_caption_switcher, unlocks only route_asset.lou_ke_caption_switcher, records visible cost, and cannot certify source truth or universal caption acceptance. Choice index 7 removes any clean Lou Ke route asset, records suppression, emits or arms storyteller.event.lou_ke_false_caption_default.v1, and writes exactly lou_ke.default_pending, storyteller.event.lou_ke_false_caption_default.v1.armed, and future_route.lou_ke_recovery_pending.

Passive delay, an unassigned rite, or the parent generic hearing does not arm that character pending triple. Durable proof is recorded in lens/replays/lou-ke-caption-switcher.recruit.replay.json, lens/replays/lou-ke-caption-switcher.hostile-default.replay.json, and lens/storyteller-lou-ke-caption-switcher.runtime.test.ts.