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: trueDo not open from a fixed turn number, day/week interval, chapter quota, raw content count, dashboard state, or lens-health state.
Content pack
- 字幕证词羁押机制 defines the row contract, branch families, counter surfaces, default rules, and replay evidence.
- 字幕证词账本 stores the caption row.
- 字幕证词听证 resolves the row before a future reader consumes it.
- 伪字幕证词默认 fires or arms when a false caption is spent as proof.
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
| Branch | Immediate relief | Cost/scar | Future route |
|---|---|---|---|
| Certify raw caption | public clarity | source exposure, sponsor pressure, inspection heat | public route with caption cost |
| Certify access caption | access-public trust | operator exposure, handler burden, artist-boundary pressure | protected access route |
| Accept sponsor-safe caption | slot/sponsor pressure down | sponsor capture, source ambiguity, public distrust | sponsor capture / costlier public route |
| Split language tracks | multiple publics served | translation drift, edit debt, contradiction | split caption canon |
| Escrow archive caption | false-caption risk down | route delay, archive debt, lawful-only pressure | source rehearing / lawful-only |
| Publish fan relay overlay | private capture down | relay risk, fan liability, inspection heat | public-only / lawful appeal |
| Hide or auto-clean | short scandal relief | false caption hardens, hostile public | blocked 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_triggerNon-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.