Caption Witness Custody / 字幕证词羁押线

Caption Witness Custody is a pressure storyline for the moment when a caption, subtitle, access caption, translation overlay, editor note, archive caption, fan relay overlay, or delayed correction becomes the thing a future route wants to cite.

The player is not merely fixing words. The player is deciding whether a caption layer can speak for the source voice, which publics it serves, which reader it harms, and what custody cost travels forward.

Why this expansion matters

The current mesh already covers narration priority, sponsor copy, hearing transcript redaction, broadcast contract readback, fan delegate mandate, and archive voice custody. Those systems can still miss one concrete surface: the real-time or post-broadcast caption that tells many viewers what happened.

A caption can turn panic into apology, silence into refusal, a lyric into sponsor-safe warranty, a memorial voice into archive proof, or an access caption into the only public witness. That makes captions a route asset and liability surface.

Entry

Open this storyline only when all of the following are true:

caption_witness_entry:
  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
  harmed_or_excluded_reader_visible_or_explicit_absence: true
  pressure_actor_present: true
  future_reader_or_route_consumes_caption: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true

Do not open from a fixed turn number, day/week interval, chapter quota, raw content count, dashboard state, or lens-health state.

Content pack

Cast pressure

  • Redaction Stenographer can protect or expose the caption operator, but raises edit debt when a split-language row is kept alive.
  • 郁蓝 can historian-back a fan or access caption, blocking private capture while raising public exposure.
  • 韩砚霜 can certify a lawful-only caption, but that can estrange the public that heard a different line.
  • Shen Luo can accept sponsor-safe wording to reduce immediate slot pressure, while binding future use to sponsor capture.
  • Baiya can mask the caption operator or preserve a black-box source check, lowering retaliation while increasing source ambiguity.

No character may make one caption clean for all readers.

Sequence

Beat 1 — The source is not enough

A future reader wants to cite a source surface: live voice, broken voice, lyric, emergency announcement, memorial voice, archive playback, sign/gesture, silence window, fan chant, sponsor line, or equivalent.

The source exists, but the usable public fact is the caption.

Beat 2 — The caption row appears

Create or update 字幕证词账本. The row must name source, caption text or absence, caption language channel, operator or absence, caption claim, harmed reader, pressure actor, and future reader.

Beat 3 — Pressure actor tries to own the caption

At least one pressure actor moves:

  • sponsor wants a safer caption;
  • inspector wants a lawful-only caption;
  • editor wants source protection or checksum control;
  • historian wants public receipt;
  • fan delegate wants the caption to stand for lived audience truth;
  • artist boundary wants caption scope narrowed;
  • management wants the future route unblocked.

Beat 4 — Caption witness hearing

Offer 字幕证词听证. Valid branches:

  • certify raw caption;
  • certify access caption;
  • accept sponsor-safe caption;
  • split language tracks;
  • escrow archive caption;
  • publish fan relay overlay;
  • hide or auto-clean.

Beat 5 — Caption state mutates future route

The selected branch must mutate both current pressure and a future route.

Valid states include:

  • certified_raw;
  • certified_access;
  • sponsor_safe;
  • split_language;
  • archive_escrowed;
  • fan_relayed;
  • source_rehearing_required;
  • false_caption_witness;
  • hostile_caption_public;
  • recovery_only.

Valid future effects include:

  • public_route_with_caption_cost;
  • access_route_protected;
  • sponsor_capture;
  • split_caption_canon;
  • lawful_only_caption;
  • source_rehearing_required;
  • public_only_route;
  • contradiction_pending;
  • hostile;
  • blocked;
  • recovery_only.

Beat 6 — Default or recovery

If the player hides the row, spends a sponsor-safe caption as public consent, treats fan relay as lawful archive proof, uses access caption without protection, or collapses split language into one meaning, arm 伪字幕证词默认.

Recovery requires visible cost: source rehearing, caption correction slot, operator protection, public addendum, archive escrow, sponsor unwind, fan relay addendum, or scar-preserving recovery.

Branch matrix

BranchImmediate reliefCost/scarFuture route
Certify raw captionpublic claritysource exposure, sponsor pressure, inspection heatpublic route with caption cost
Certify access captionaccess-public trustoperator exposure, handler burden, artist-boundary pressureprotected access route
Accept sponsor-safe captionslot/sponsor pressure downsponsor capture, source ambiguity, public distrustsponsor capture / costlier public route
Split language tracksmultiple publics servedtranslation drift, edit debt, contradictionsplit caption canon
Escrow archive captionfalse-caption risk downroute delay, archive debt, lawful-only pressuresource rehearing / lawful-only
Publish fan relay overlayprivate capture downrelay risk, fan liability, inspection heatpublic-only / lawful appeal
Hide or auto-cleanshort scandal relieffalse caption hardens, hostile publicblocked or recovery-only

Replay evidence

storyline_id: storyteller.storyline.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
  harmed_or_excluded_reader_visible_or_explicit_absence: true
  pressure_actor_present: true
  future_reader_or_route_consumes_caption: true
  no_fixed_turn_trigger: true
offered_choices:
  - card.caption_witness_ledger
  - rite.caption_witness_hearing
  - certify_raw_caption
  - certify_access_caption
  - accept_sponsor_safe_caption
  - split_language_tracks
  - escrow_archive_caption
  - publish_fan_relay_overlay
  - hide_or_autoclean
branch_result:
  selected_branch: <branch>
  caption_state_before: <state>
  caption_state_after: <state>
  harmed_reader_after: <reader or explicit_absence>
  event_seen_or_armed: storyteller.event.false_caption_witness_default.v1 | none
  future_reader_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - source_and_caption_are_distinct
  - caption_operator_or_absence_visible
  - harmed_reader_visible_or_explicit_absence
  - pressure_actor_present
  - branch_outcomes_diverge
  - every_success_has_cost
  - false_caption_default_is_durable
  - future_reader_consumes_caption_state
  - no_universal_clean_caption
  - no_fixed_turn_trigger

Non-goals

  • Not localization filler.
  • Not an accessibility checklist.
  • Not a transcript-redaction duplicate.
  • Not a sponsor-copy duplicate.
  • Not a narration-priority duplicate.
  • Not a turn-count, day-count, chapter-count, content-count, dashboard, or lens-health trigger.
  • Not valid if one caption safely satisfies public, lawful, sponsor, archive, source-holder, access, fan, and route readers at once.