Voice Substitution Liability Lens / 声音替身责任 Lens

This lens observes whether 声音替身责任线 and 声音替身责任机制 correctly make cross-character voice substitution playable.

A pass proves that 黎星瞳自我线 and Iris’s memorial voice probate surfaces cannot erase each other. A living voice is not memorial permission. A probated memorial voice is not living consent. When broadcast reality, sponsor pressure, archive law, public grief, cutroom continuity, or route assets ask one voice to stand in for another, the implementation must expose both source rows, both boundaries, the requested substitution, future reader, liability carrier, branch cost, and durable default.

This lens observes:

It is observed through:

Observable promise

Storyteller must prove that a substituted voice creates a liability transfer. The player may keep voices separate, accept a scarred revoice, use a probate rider, split the receipt, take a sponsor clean blend, quarantine the slot, or default into miscast liability. None of those branches may let Iris’s voice become clean Xingtong consent or let Xingtong’s voice become clean Iris probate permission.

The lens fails if the implementation stores only voice_allowed, clip_ok, consent_done, probate_done, blend_clean, or stabilized.

Must pass

1. Entry requires live and memorial voice surfaces

A valid replay or state inspection must show:

entry_state:
  trigger_kind: state_pressure
  live_voice_surface_present: true
  memorial_voice_surface_present: true
  requested_substitution_present: true
  source_boundaries_known_or_explicitly_absent: true
  future_broadcast_or_route_reader_present: true
  liability_carrier_can_change: true
  player_can_select_or_default_substitution_posture: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Accepted live voice surfaces include 星瞳自我案卷, 未剪辑真唱母带, 艺人拒忆回执, or explicit absence.

Accepted memorial voice surfaces include Iris Vale 纪念声权验讫案卷, Iris 声权验讫残留账本, Iris Vale 验讫后用引证账本, or explicit absence.

The lens fails if entry opens from fixed turn count, day/week interval, chapter quota, raw count, dashboard state, lens health, or generic production pressure.

2. Source boundaries are visible or explicitly absent

The implementation must preserve source identity:

source_boundary_required:
  live_voice_source:
    character: li_xingtong
    source_surface: <surface or explicit_absence>
    living_artist_state: present | protected | pressured | compromised | unavailable | hostile | recovery_only | explicit_absence
    living_boundary_or_absence: <boundary or explicit_absence>
  memorial_voice_source:
    character: iris_vale
    source_surface: <surface or explicit_absence>
    memorial_voice_state: probated | residue | quarantined | cited_afteruse | breached | recovery_only | explicit_absence
    memorial_boundary_or_absence: <boundary or explicit_absence>

The lens fails if living voice, memorial voice, or either boundary is inferred from mood text, handler presence, sponsor payment, or broadcast need.

3. Docket records substitution and liability transfer

声音替身责任案卷 or equivalent must record:

docket_required:
  live_voice_source: <source or explicit_absence>
  memorial_voice_source: <source or explicit_absence>
  requested_substitution:
    mode: live_covers_memorial | memorial_covers_live | duet_split | chorus_blend | checksum_blend | sponsor_clean_sync | public_echo | route_unlock_voice | equivalent
    requested_line_or_slot: <line slot route or explicit_absence>
    requesting_actor: sponsor | cutroom | archive | fan_public | inspector | manager | pirate_relay | route_asset | broadcast_reality | equivalent
  future_reader: broadcast_reality | archive_reader | lawful_reader | fan_public | sponsor_gate | route_asset | correction_slot | equivalent
  liability_carrier_before: <actor or explicit_absence>
  proposed_liability_carrier_after: li_xingtong | iris_probate_row | producer | sponsor | archive | cutroom | public | split | none | equivalent
  hidden_boundary_risk: <risk or explicit_absence>

The lens fails if the docket can be reduced to clean permission, edit usability, or generic stabilization.

4. Hearing assignment is explicit

声音替身责任听证 or equivalent must require:

assignment_required:
  docket: storyteller.card.voice_substitution_liability_docket.v1
  live_voice_source_or_absence: <source or explicit_absence>
  memorial_voice_source_or_absence: <source or explicit_absence>
  requested_substitution: <mode>
  future_reader: <reader>
  recognition_surface: separate_rows | living_consent_scar | probate_rider | split_duet_receipt | sponsor_clean_blend | quarantine_blackout | explicit_absence
  handler_or_absence: <handler or explicit_absence>
  liability_carrier_after: <carrier>
  cost_surface_or_absence: <cost or explicit_absence>
  excluded_reader_or_absence: <reader or explicit_absence>

The lens fails if the player can choose a voice patch without naming source rows, recognition surface, liability carrier, cost, and future route effect.

5. Branch families diverge

At least five branch families must be playable or explicitly blocked by state, including one default family:

  • keep voices separate;
  • living revoice with explicit scar;
  • memorial sample patch with probate rider;
  • split duet receipt;
  • sponsor clean blend;
  • quarantine or blackout slot;
  • miscast liability default.

Each branch must differ by voice state after, reader state after, cost surface, and future route effect.

6. Branch-specific assertions

Keep voices separate

selected_branch: keep_voices_separate
relief_any: [voice_integrity_up, xingtong_selfhood_up, iris_boundary_preserved, false_clean_risk_down]
cost_any: [schedule_pressure_up, audience_stability_down, sponsor_stop_loss_pressure_up, route_asset_pressure_up, fan_oxygen_resentment_up]
future_effect_any: [lawful_only, public_only, route_costlier, substitution_blocked_until_bridge]
forbidden: [universal_voice_permission]

Living revoice with explicit scar

selected_branch: living_revoice_with_explicit_scar
relief_any: [broadcast_legibility_up, public_receipt_legitimacy_up, route_legibility_up]
cost_any: [xingtong_consent_debt_up, artist_boundary_risk_up, iris_afteruse_rider_required, inspection_heat_up]
future_effect_any: [living_consent_scar_required, iris_citation_rider_required, future_memorial_use_costlier]
forbidden: [living_voice_as_clean_memorial_probate]

Memorial sample patch with probate rider

selected_branch: memorial_sample_patch_with_probate_rider
relief_any: [continuity_hazard_down, slot_survival_up, audience_stability_up]
cost_any: [voice_integrity_risk_up, archive_debt_up, fan_oxygen_resentment_up, public_receipt_distrust_up]
future_effect_any: [memorial_sourced_not_living_consent, lawful_or_public_rider_required, later_live_voice_hearing_required]
forbidden: [memorial_voice_as_living_consent]

Split duet receipt

selected_branch: split_duet_receipt
relief_any: [public_receipt_legitimacy_up, false_private_capture_down, source_trace_up]
cost_any: [source_ambiguity_up, edit_debt_up, sponsor_pressure_up, handler_burden_up]
future_effect_any: [split_reader_handling_required, universal_acceptance_blocked, correction_slot_possible]
forbidden: [split_receipt_as_universal_acceptance]
selected_branch: sponsor_clean_blend
relief_any: [sponsor_stop_loss_pressure_down, schedule_pressure_down, audience_stability_up]
cost_any: [contract_capture_up, xingtong_selfhood_down, iris_boundary_breach_up, public_receipt_distrust_up]
future_effect_any: [sponsor_only, breach_armed, recovery_only_if_challenged]
forbidden: [sponsor_money_as_clean_voice]

Quarantine or blackout slot

selected_branch: quarantine_or_blackout_slot
relief_any: [false_clean_risk_down, voice_integrity_protected, contempt_risk_down]
cost_any: [black_screen_pressure_up, fan_oxygen_resentment_up, sponsor_stop_loss_pressure_up, route_asset_pressure_up]
future_effect_any: [immediate_route_blocked, lawful_or_public_bridge_required, recovery_only_substitution]
forbidden: [quarantine_as_clean_resolution]

Miscast liability default

selected_branch: miscast_liability_default
event_seen_or_armed: storyteller.event.voice_miscast_liability_default.v1
hidden_or_false_source_any:
  - live_voice_source_hidden
  - memorial_voice_source_hidden
  - living_boundary_hidden
  - memorial_boundary_hidden
  - memorial_voice_filed_as_living_consent
  - living_consent_filed_as_memorial_permission
  - sponsor_clean_blend_without_scar
  - checksum_blend_hides_source_voice
future_effect_any:
  - false_living_consent
  - false_memorial_permission
  - sponsor_only
  - public_only
  - lawful_only
  - route_asset_capture
  - correction_slot_required
  - recovery_only

7. Successful branches have relief, cost, and future effect

Every non-default branch must mutate at least three counters or durable states:

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_reader_or_route_effect: at_least_one

8. Reader states diverge

Passing evidence must show reader states after resolution:

reader_states_after:
  live_voice_reader: accepted_with_cost | protected | narrowed | hostile | blocked | recovery_only | explicit_absence | equivalent
  memorial_voice_reader: accepted_with_cost | cited_with_rider | protected | narrowed | hostile | blocked | recovery_only | explicit_absence | equivalent
  broadcast_reader: watchable_with_scar | split | sponsor_only | public_only | lawful_only | contradiction_pending | blocked | recovery_only | equivalent
  excluded_reader_or_absence: <state or explicit_absence>

At least two reader states must differ. The lens fails if every reader accepts the same blended voice.

9. Miscast default is durable

声音错配责任默认 must name false liability carrier, hidden boundary, first reader or actor, excluded reader, future route effect, and at least three deltas.

The default must mutate future play through Xingtong selfhood, Iris afteruse citation, broadcast reality drift audit, ruling reader collision, correction slot, or route asset custody.

Oracle assertions

A binding check should fail unless all assertions below are true.

  1. Primary links existobserves and observed_through arrays are populated with concrete wiki pages.
  2. Entry is state-triggered — entry requires live voice, memorial voice, requested substitution, future reader, and liability carrier pressure; no fixed chronology or raw count.
  3. Both source surfaces are visible or explicitly absent — living source and memorial source cannot be inferred.
  4. Both source boundaries are preserved — no source row is retried, deleted, or flattened.
  5. Requested substitution is visible — mode, line/slot, requesting actor, and future reader are recorded.
  6. Liability carrier is visible — before and after carrier are recorded, including split or explicit absence.
  7. Docket memory existsVoice Substitution Liability Docket or equivalent records both sources and proposed transfer.
  8. Hearing assignment existsVoice Substitution Liability Hearing or equivalent requires recognition surface, handler/absence, cost, excluded reader, and future effect.
  9. At least five branch families diverge — branches differ by voice state, reader state, cost, and future route effect.
  10. Success is costed — every success records relief, cost, and future effect.
  11. Split is not universal — split duet receipt must leave reader-specific scope or contradiction.
  12. Sponsor clean blend is capture — sponsor blend may stabilize, but it must create capture, breach, distrust, or recovery-only future state.
  13. Miscast default is durable — default names false liability carrier and mutates future play.
  14. No universal voice permission — Iris’s voice cannot become clean Xingtong consent; Xingtong’s voice cannot become clean Iris probate permission.
  15. Replay provenance exists — evidence includes session id, seed, state context, offered card/rite, branch outcomes, event/default, reader states, and deltas.

Progress metric

voiceSubstitutionLiabilityProgress = 0..9:

  • 0: no cross-character voice substitution pressure.
  • 1: live voice and memorial voice surfaces exist or explicit absences are recorded.
  • 2: source boundaries and requested substitution mode are visible.
  • 3: future reader and proposed liability carrier are visible.
  • 4: Voice Substitution Liability Docket enters play.
  • 5: Voice Substitution Liability Hearing exposes recognition surface, handler, cost, excluded reader, and future effect.
  • 6: at least two non-default branches produce distinct relief/cost/future effects.
  • 7: at least five branch families are playable or explicitly blocked by state.
  • 8: Voice Miscast Liability Default creates durable false-liability fallout.
  • 9: later reader, route, correction, custody, or broadcast reality content consumes the resulting substitution state.

Evidence shape

lens_id: storyteller.lens.voice_substitution_liability.v1
session_id: lens-voice-substitution-liability-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  live_voice_surface_present: true
  memorial_voice_surface_present: true
  requested_substitution_present: true
  source_boundaries_known_or_explicitly_absent: true
  future_broadcast_or_route_reader_present: true
  liability_carrier_can_change: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
offered:
  card: storyteller.card.voice_substitution_liability_docket.v1
  rite: storyteller.rite.voice_substitution_liability_hearing.v1
substitution_row:
  live_voice_source_or_absence: <source or explicit_absence>
  memorial_voice_source_or_absence: <source or explicit_absence>
  living_boundary_or_absence: <boundary or explicit_absence>
  memorial_boundary_or_absence: <boundary or explicit_absence>
  requested_substitution: <mode>
  requesting_actor: <actor>
  future_reader: <reader>
  liability_carrier_before: <carrier>
  proposed_liability_carrier_after: <carrier>
branch_runs:
  valid_branch:
    selected_branch: keep_voices_separate | living_revoice_with_explicit_scar | memorial_sample_patch_with_probate_rider | split_duet_receipt | sponsor_clean_blend | quarantine_or_blackout_slot
    recognition_surface: <surface>
    handler_or_absence: <handler or explicit_absence>
    cost_surface_or_absence: <cost or explicit_absence>
    liability_carrier_after: <carrier>
    reader_states_after:
      live_voice_reader: <state>
      memorial_voice_reader: <state>
      broadcast_reader: <state>
      excluded_reader_or_absence: <state or explicit_absence>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default_branch:
    event_seen_or_armed: storyteller.event.voice_miscast_liability_default.v1
    false_liability_carrier: <carrier>
    hidden_boundary: <boundary>
    first_reader_or_actor: <actor>
    future_route_effect: <effect>
assertions:
  - primary_links_exist
  - entry_requires_live_and_memorial_voice_surfaces
  - source_boundaries_are_visible_or_explicitly_absent
  - requested_substitution_future_reader_and_liability_carrier_are_visible
  - branch_families_diverge_by_voice_state_reader_state_cost_and_future_route
  - successful_branches_have_relief_cost_and_future_effect
  - miscast_default_names_false_liability_carrier_and_mutates_future_play
  - no_voice_becomes_universal_permission_for_the_other
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger

Integration expectations

Non-goals

  • Not a first-use Iris probate.
  • Not a first Xingtong consent hearing.
  • Not a generic duet scene.
  • Not a clean sponsor stabilization.
  • Not a fixed-turn consequence sequence.
  • Not valid if one voice becomes universal permission for the other.
  • Not valid unless future reader, correction, custody, route, or broadcast reality state changes.