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.jsonproves choice0, the recruited person-state, the bounded route asset, and visible cost;lens/replays/lou-ke-caption-switcher.hostile-default.replay.jsonproves choice7, 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: trueInvalid 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 | 楼刻 state | Immediate relief | Cost/scar | Future state |
|---|---|---|---|---|
| Protect access operator | protected_access_operator | access proof and operator legibility rise | handler burden, exposure, sponsor pressure | access route protected with cost |
| Recruit switcher | recruited_caption_switcher | one future split/escrow caption row available | payroll leak, inspection heat, route-asset pressure | route_asset.lou_ke_caption_switcher unlocked with limits |
| Retain one run | retained_one_caption_run | one caption contradiction contained | future service costlier, source rehearing pressure | follow-up caption hearing required |
| Sponsor-safe switch | sponsor_captured_switcher | sponsor/slot pressure falls | public distrust, access harm, sponsor capture | sponsor-only caption or public route costlier |
| Split language tracks | split_track_operator | incompatible publics served separately | translation drift, edit debt, contradiction | split caption canon |
| Archive escrow | archive_escrow_switcher | false-caption risk falls | route delay, archive debt, lawful-only pressure | source rehearing or lawful-only caption |
| Publish fan relay | fan_relay_switcher | private capture blocked | relay liability, inspection heat, fan pressure | public-only route or lawful appeal |
| Suppress or auto-clean | suppressed_operator / missed_by_autoclean | short scandal relief | false caption hardens, harmed reader hostile | blocked, 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_upMissability 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_oneAccepted 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_triggerNon-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.