Lou Ke Caption Switcher / 楼刻字幕切换员线

Lou Ke Caption Switcher is a character storyline that turns the caption operator slot in 字幕证词羁押线 into concrete RPG play.

楼刻 sits where five caption publics collide: official live captions, access captions, sponsor-safe subtitles, archive transcript captions, and fan or pirate overlays. She cannot decide the source truth. She can decide which caption row is routed first, which one is preserved, and which one future readers will try to cite as proof.

The dramatic question is:

Do you protect the person who routed the caption, recruit her as a narrow switchboard route asset, or let auto-clean make her hostile and the caption false-clean?

Runtime completion

The executable character lane is the strict, non-replacing storyteller.rite.lou_ke_caption_switch_hearing.v1 overlay. It assigns exactly eleven cards: the caption-witness ledger, switchboard key, source surface, source holder, source proof, caption text, caption channel, the actual Lou Ke person card, harmed reader, pressure actor, and future reader. All eleven are exact-ID and in-hand checked, and the chosen option is validated against that exact assigned packet. The parent storyteller.rite.caption_witness_hearing.v1 remains the generic Caption Witness runtime and keeps its explicit-absence paths.

Choice 0 recruits Lou Ke as the bounded route_asset.lou_ke_caption_switcher; it does not certify source truth or make every caption reader clean. Choice 7 suppresses the operator and arms storyteller.event.lou_ke_false_caption_default.v1 by setting exactly lou_ke.default_pending, storyteller.event.lou_ke_false_caption_default.v1.armed, and future_route.lou_ke_recovery_pending. The event must consume and clear that triple before leaving a hostile or recovery-only person-state.

Two character-lens Game CLI runs are the durable proof surface:

  • lens/replays/lou-ke-caption-switcher.recruit.replay.json proves choice 0, the recruited person-state, the bounded route asset, and visible cost;
  • lens/replays/lou-ke-caption-switcher.hostile-default.replay.json proves choice 7, actual default resolution, cleared pending state, hostile Lou Ke, and no clean route asset.

Bound content pack

This storyline binds:

It reuses 字幕证词羁押机制 rather than adding another caption mechanism.

Why this is the next gap

The current caption mesh is already strong at the pressure-system layer. It distinguishes source voice from caption, requires a harmed reader, and blocks one caption from satisfying every public. The weak seam is embodiment: caption_operator_or_absence_visible can still be fulfilled by a faceless field.

楼刻 makes that field playable. Her state must decide whether an access public is protected, a sponsor-safe line captures the route, split language remains split, archive escrow delays use, fan relay becomes public-only, or auto-clean turns the caption into hostile evidence.

State-triggered entry

Open this storyline only when a caption row would change future play.

entry_state_required:
  trigger_kind: state_pressure
  source_surface_present: true
  caption_layer_present_or_explicit_absence: true
  caption_claim_changes_meaning_or_access: true
  caption_operator_or_absence_visible: true
  competing_reader_or_pressure_present: true
  future_reader_or_route_consumes_caption: true
  player_can_protect_recruit_retain_sponsor_split_escrow_publish_suppress_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_caption_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Invalid entry examples: a fixed broadcast sequence, a subtitle-error counter, a generic access checklist, chapter quota, dashboard warning, relationship score, or lens-health state.

Storyline spine

Beat 1 — The source is not what most readers will cite

A future reader wants a public fact from a source surface: live voice, broken voice, lyric, emergency announcement, archive playback, gesture, silence, fan chant, sponsor line, or equivalent.

The route does not cite the source directly. It cites the caption layer.

Beat 2 — 楼刻 is visible or absent

Create or update 字幕切换键 and 字幕证词账本.

The row must name operator state or explicit absence, source surface, caption layer, caption claim, harmed reader, pressure actor, routing posture, and future reader.

Beat 3 — The board wants a clean caption

At least two readers conflict:

  • access public wants protected access proof;
  • sponsor wants sponsor-safe wording;
  • archive wants lawful transcript escrow;
  • source holder wants boundary scope;
  • fan public wants the relay caption preserved;
  • foreign-language public wants the track they actually saw;
  • management wants one clean meaning for route continuity.

Beat 4 — Caption hearing assigns her posture

Run 楼刻字幕切换听证 for the actual character packet. The parent 字幕证词听证 remains available for generic or explicit-absence Caption Witness rows.

The player chooses one posture:

  • protect access operator;
  • recruit caption switcher;
  • retain one caption run;
  • sponsor-safe switch;
  • split language tracks;
  • archive escrow handoff;
  • publish fan relay;
  • suppress or auto-clean;
  • let default fire.

Beat 5 — Future readers consume the operator state

A future route must read the result. Valid readers include 无障碍字幕信赖线, 无障碍字幕集体线, 字幕证词羁押线, sponsor copy, transcript redaction, broadcast contract readback, fan mandate split, route asset custody, screen rights, archive voice custody, or broadcast reality.

Branch map

Branch楼刻 stateImmediate reliefCost/scarFuture state
Protect access operatorprotected_access_operatoraccess proof and operator legibility risehandler burden, exposure, sponsor pressureaccess route protected with cost
Recruit switcherrecruited_caption_switcherone future split/escrow caption row availablepayroll leak, inspection heat, route-asset pressureroute_asset.lou_ke_caption_switcher unlocked with limits
Retain one runretained_one_caption_runone caption contradiction containedfuture service costlier, source rehearing pressurefollow-up caption hearing required
Sponsor-safe switchsponsor_captured_switchersponsor/slot pressure fallspublic distrust, access harm, sponsor capturesponsor-only caption or public route costlier
Split language trackssplit_track_operatorincompatible publics served separatelytranslation drift, edit debt, contradictionsplit caption canon
Archive escrowarchive_escrow_switcherfalse-caption risk fallsroute delay, archive debt, lawful-only pressuresource rehearing or lawful-only caption
Publish fan relayfan_relay_switcherprivate capture blockedrelay liability, inspection heat, fan pressurepublic-only route or lawful appeal
Suppress or auto-cleansuppressed_operator / missed_by_autocleanshort scandal relieffalse caption hardens, harmed reader hostileblocked, hostile, or recovery-only

No branch may make one caption cleanly accepted by public, lawful, sponsor, archive, access, fan, source-holder, management, and broadcast-reality readers.

Route asset limit

Recruiting her unlocks a narrow route asset, not a universal solution.

route_asset_lou_ke_caption_switcher:
  unlock_state: recruited_caption_switcher
  can_do:
    - preserve one future split caption row when source and harmed reader are visible
    - escrow one caption layer until source rehearing
    - prove operator chain for one access caption reliance row
  cannot_do:
    - certify source truth alone
    - turn sponsor-safe caption into public consent
    - make fan relay lawful-clean
    - merge split language tracks into one clean meaning
    - satisfy all caption readers at once
  use_cost_any:
    - caption_operator_exposure_up
    - handler_burden_up
    - inspection_heat_up
    - payroll_leak_up
    - future_recovery_cost_up

Missability and recovery

楼刻 is missed when a caption row is consumed while the operator is hidden, absent without consequence, auto-cleaned, or replaced by a generic accessibility-complete flag.

Missed/default states include:

  • missed_by_autoclean;
  • false_caption_witness;
  • hostile_caption_public;
  • source_rehearing_required;
  • access_caption_reliance_escalates;
  • caption_correction_slot_required;
  • blocked_or_recovery_only_caption_route.

Recovery is allowed only through visible scar: source rehearing, caption correction slot, operator protection, public addendum, archive escrow, sponsor unwind, fan relay addendum, access caption reliance hearing, or scar-preserving route recovery.

Counter contract

Every non-default branch must mutate:

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_reader_or_route_effect: at_least_one

Accepted surfaces include caption_legibility, caption_operator_exposure, access_public_trust, foreign_language_public_trust, translation_drift, source_voice_exposure, source_ambiguity, sponsor_copy_pressure, sponsor_capture, inspection_heat, archive_debt, editor_debt, fan_liability, relay_custody_risk, public_receipt_distrust, and future_recovery_cost.

Replay/session evidence shape

storyline_id: storyteller.storyline.character.lou_ke_caption_switcher.v1
session_id: lens-lou-ke-caption-switcher-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  source_surface_present: true
  caption_layer_present_or_explicit_absence: true
  caption_claim_changes_meaning_or_access: true
  caption_operator_or_absence_visible: true
  competing_reader_or_pressure_present: true
  future_reader_or_route_consumes_caption: true
  no_fixed_turn_trigger: true
offered:
  character: storyteller.character.lou_ke_caption_switcher.v1
  person_card: storyteller.card.lou_ke_caption_switcher.v1
  card: storyteller.card.caption_switchboard_key.v1
  ledger: storyteller.card.caption_witness_ledger.v1
  rite: storyteller.rite.lou_ke_caption_switch_hearing.v1
branch_result:
  selected_posture: protect_access_operator | recruit_switcher | retain_one_run | sponsor_safe_switch | split_language_tracks | archive_escrow | publish_fan_relay | suppress_or_autoclean | false_caption_default
  lou_ke_state_after: protected_access_operator | recruited_caption_switcher | retained_one_caption_run | sponsor_captured_switcher | split_track_operator | archive_escrow_switcher | fan_relay_switcher | suppressed_operator | hostile_caption_witness | missed_by_autoclean | recovery_only_operator
  caption_state_after: <state>
  harmed_reader_after: <reader or explicit_absence>
  event_seen_or_armed: storyteller.event.lou_ke_false_caption_default.v1 | none
  future_reader_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - entry_is_state_triggered
  - source_and_caption_are_distinct
  - operator_state_or_absence_is_visible
  - branch_outcomes_diverge
  - recruit_miss_hostile_and_capture_states_are_durable
  - every_success_has_relief_cost_and_future_effect
  - false_caption_default_mutates_future_play
  - no_universal_clean_caption
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger

Non-goals

  • Not localization filler.
  • Not an accessibility checklist.
  • Not a subtitle accuracy minigame.
  • Not another transcript-redaction duplicate.
  • Not a generic staff recruit.
  • Not fixed-turn content.
  • Not valid unless her state changes caption custody, harmed reader, pressure actor, and future route acceptance.