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:
- the source utterance, gesture, silence, lyric, or archive voice remains distinct;
- the caption text and language channel are visible;
- the caption holder or operator is accountable or explicitly absent;
- 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: trueValid 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 | equivalentNo handler rank, sponsor clause, legal stamp, editor checksum, fan enthusiasm, or accessibility label may replace the required row fields.
Branch families
| Branch | Relief | Cost | Future effect |
|---|---|---|---|
| Certify raw caption | source meaning becomes publicly legible | sponsor heat, inspection heat, source-holder exposure | public route with caption cost |
| Certify access caption | access public receives protected proof | handler burden, privacy risk, caption operator exposure | access route protected |
| Accept sponsor-safe caption | immediate slot/sponsor pressure falls | source meaning narrows, public distrust, sponsor capture | sponsor capture or public route costlier |
| Split language tracks | incompatible publics can be served without one false consensus | translation drift, source ambiguity, editor debt | split caption canon or contradiction pending |
| Escrow archive caption | caption cannot be misused before source check | route delay, archive debt, lawful-only pressure | lawful-only caption or source rehearing required |
| Publish fan or pirate hard-sub | private capture is blocked and public pressure rises | relay risk, inspection heat, fan liability | public-only route or lawful appeal required |
| Suppress or auto-clean | immediate scandal may soften | false caption witness hardens, harmed reader becomes hostile | hostile, 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 recoveryCounter surfaces
Every resolution must mutate at least three counters or durable states, including relief, cost, and future route effect.
Primary counters:
caption_legibilitycaption_capturecaption_operator_exposureaccess_public_trustforeign_language_public_trusttranslation_driftsource_voice_exposuresource_ambiguitysponsor_copy_pressuresponsor_captureinspection_heatarchive_debteditor_debtfan_liabilityrelay_custody_riskpublic_receipt_distrustfuture_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_triggerNon-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.