Caption Witness Custody / 字幕证词羁押机制

Caption Witness Custody is the mechanism for treating live captions, hard-subs, access captions, translator overlays, lyric captions, and post-broadcast caption corrections as a second broadcast voice that can become proof.

The gap it fills is narrow: Storyteller already knows how to ask who narrates first, who signs a broadcast, who warrants sponsor copy, and who redacts a hearing transcript. This mechanism asks what happens when the thing most viewers can cite is not the voice recording itself, but the caption layer that told them what the voice meant.

A caption can stabilize a confused audience. It can also convert panic into consent, confession into apology, silence into refusal, or a lyric into sponsor-safe copy. Therefore caption rows are route assets and custody liabilities, not UI flavor.

Core rule

A caption may clarify speech, but it may not silently replace the source voice.

Every caption-witness resolution must preserve all four surfaces:

  1. the source utterance, gesture, silence, lyric, or archive voice remains distinct;
  2. the caption text and language channel are visible;
  3. the caption holder or operator is accountable or explicitly absent;
  4. a future reader consumes the caption state with cost.

The mechanism fails if the game stores only audience understood, translation correct, sponsor-safe wording, or accessibility complete without custody, source, language, excluded reader, and future effect.

Entry condition

Open only from state pressure:

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
  holder_or_operator_present_or_explicit_absence: true
  competing_reader_or_pressure_present: true
  future_reader_or_route_consumes_caption: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true

Valid source surfaces include live voice, broken voice, lyric line, emergency announcement, memorial voice, archive playback, sign/gesture, silence window, fan chant, sponsor line, or equivalent.

Valid caption layers include official live caption, accessibility caption, translator overlay, sponsor-safe subtitle, editor note, archive transcript caption, fan translation, pirate hard-sub, delayed correction, or explicit absence.

Caption row contract

Every row must expose:

caption_witness_row_required:
  source_surface: <voice lyric gesture silence archive playback fan chant sponsor line or equivalent>
  source_holder_or_absence: <artist archive editor fan witness sponsor inspector or explicit_absence>
  caption_text_or_absence: <text or explicit_absence>
  caption_language_channel: official_live | access_caption | translator_overlay | sponsor_safe | editor_note | archive_transcript | fan_translation | pirate_hardsub | delayed_correction | explicit_absence | equivalent
  caption_operator_or_absence: <operator id or explicit_absence>
  caption_claim: clarifies | narrows | softens | reverses | confesses | consents | refuses | apologizes | warrants | anonymizes | mistranslates | false_clean | equivalent
  excluded_or_harmed_reader: deaf_access_public | foreign_language_public | source_voice_holder | sponsor | inspector | fan_public | archive_reader | artist_boundary | route_asset | explicit_absence | equivalent
  pressure_actor: sponsor | inspector | editor | historian | fan_delegate | artist_boundary | pirate_relay | management | false_caption_claimant | equivalent
  selected_custody_response: certify_raw_caption | certify_access_caption | accept_sponsor_safe_caption | split_language_tracks | escrow_archive_caption | publish_fan_hardsub | suppress_or_autoclean | equivalent
  future_reader_effect: public_route_with_caption_cost | lawful_only_caption | access_route_protected | sponsor_capture | split_caption_canon | source_rehearing_required | contradiction_pending | blocked | hostile | recovery_only | equivalent

No handler rank, sponsor clause, legal stamp, editor checksum, fan enthusiasm, or accessibility label may replace the required row fields.

Branch families

BranchReliefCostFuture effect
Certify raw captionsource meaning becomes publicly legiblesponsor heat, inspection heat, source-holder exposurepublic route with caption cost
Certify access captionaccess public receives protected proofhandler burden, privacy risk, caption operator exposureaccess route protected
Accept sponsor-safe captionimmediate slot/sponsor pressure fallssource meaning narrows, public distrust, sponsor capturesponsor capture or public route costlier
Split language tracksincompatible publics can be served without one false consensustranslation drift, source ambiguity, editor debtsplit caption canon or contradiction pending
Escrow archive captioncaption cannot be misused before source checkroute delay, archive debt, lawful-only pressurelawful-only caption or source rehearing required
Publish fan or pirate hard-subprivate capture is blocked and public pressure risesrelay risk, inspection heat, fan liabilitypublic-only route or lawful appeal required
Suppress or auto-cleanimmediate scandal may softenfalse caption witness hardens, harmed reader becomes hostilehostile, blocked, or recovery-only

A successful branch must always carry both relief and scar. Caption clarity is never clean universal consent.

Durable states

caption_witness_states:
  pending: row exists but no custody response has been selected
  certified_raw: caption is public-readable but source holder remains exposed
  certified_access: caption is protected as an access route asset
  sponsor_safe: caption narrows source meaning for sponsor relief
  split_language: multiple language tracks carry visible contradiction
  archive_escrowed: caption is held for source rehearing or lawful reader
  fan_hardsubbed: fan/pirate caption is public but not lawful-clean
  source_rehearing_required: source voice or gesture must be tested again
  false_caption_witness: caption has replaced source meaning falsely
  hostile_caption_public: harmed caption public contests future route
  recovery_only: caption can only be used through scar-preserving recovery

Counter surfaces

Every resolution must mutate at least three counters or durable states, including relief, cost, and future route effect.

Primary counters:

  • caption_legibility
  • caption_capture
  • 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
  • future_recovery_cost

Failure defaults

A caption-witness default is armed when:

  • a sponsor-safe caption is filed as public consent;
  • an auto-caption converts refusal, panic, silence, or lyric into apology/confession;
  • an accessibility caption is used without protecting its operator or access public;
  • a fan hard-sub is treated as lawful archive proof;
  • an archive transcript caption is used before source rehearing;
  • a split-language row is later cited as one clean meaning;
  • the caption operator is absent and the future reader still consumes the caption.

The default must name the source surface, caption text or absence, operator or absence, harmed reader, pressure actor, false caption claim, and future route effect.

Replay evidence shape

mechanic: storyteller.mechanic.caption_witness_custody.v1
session_id: lens-caption-witness-custody-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
branch_runs:
  constructive_branch:
    selected_custody_response: certify_raw_caption | certify_access_caption | accept_sponsor_safe_caption | split_language_tracks | escrow_archive_caption | publish_fan_hardsub
    caption_state_after: <state>
    harmed_or_excluded_reader: <reader>
    future_reader_effect: <effect>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default_branch:
    selected_custody_response: suppress_or_autoclean
    caption_state_after: false_caption_witness | hostile_caption_public | recovery_only
    event_seen_or_armed: storyteller.event.false_caption_witness_default.v1
    false_caption_claim: <claim>
    future_reader_effect: <effect>
assertions:
  - source_and_caption_are_distinct
  - caption_operator_or_absence_visible
  - harmed_reader_visible
  - branch_outcomes_diverge
  - every_success_has_cost
  - future_reader_consumes_caption_state
  - no_universal_clean_caption
  - no_fixed_turn_trigger

Non-goals

  • Not generic localization content.
  • Not an accessibility checklist.
  • Not a transcript-redaction duplicate.
  • Not a sponsor-copy warranty duplicate.
  • Not a narration-priority initiative order.
  • Not a turn-count trigger.
  • Not satisfied by saying the subtitles were accurate.
  • Not valid if one caption text safely satisfies public, lawful, sponsor, archive, fan, source-holder, access, and foreign-language readers at once.