Witness Recantation Reliance / 证词翻供信赖线

Witness Recantation Reliance is the next pressure storyline for the testimony/proof cluster. It opens after the game has already accepted a witness, operator, caption witness, recap fragment, callback carrier, or protected person as proof, and then later learns that the person or proof carrier has changed state.

The playable question is: does a future route still get to rely on old testimony after the witness narrows, corrects, retracts, contradicts, disappears, is coerced silent, or turns hostile — and who pays the cost of making that reliance legible?

This storyline is deliberately downstream of witness creation and witness danger. 操作员证词合议线 makes proof. 证人报复链 makes people unsafe. 字幕证词羁押线 and 无障碍字幕信赖线 make testimony route-relevant. This line tests whether that proof can survive changed witness state without becoming false-clean.

Why this is the next useful expansion slice

The current green corpus is strong at obligation creation, carrier collision, caption reliance, recap syndication, witness reprisal, and failure arbitration. The remaining seam is proof reuse after state mutation. A route can accidentally remain unlocked because the engine remembers operator proved it while forgetting that the operator has since been captured, corrected, silenced, or contradicted.

This line makes that late proof debt playable instead of letting old accepted proof become a permanent skeleton key.

Bound content pack

  • 证词翻供信赖机制 defines eligible testimony, state-change rows, rehearing branches, default clean reuse, counters, and future-reader consumption.
  • 证词翻供账本 records source proof, old reader acceptance, witness state, new statement state, reliance boundary, harmed reader, and future route effect.
  • 证词可靠性复听 resolves corroborate, narrow, correct, protect, substitute, quarantine, or default.
  • 洁净证词复用默认 fires or arms when old testimony is reused clean despite a required recantation boundary.

State-triggered entry

Open this storyline only when all conditions are true:

entry_state_required:
  trigger_kind: state_pressure
  source_proof_present: true
  source_proof_accepted_by_reader: true
  witness_or_carrier_visible_or_explicit_absent: true
  witness_state_changed_or_new_statement_visible: true
  future_reader_or_route_would_reuse_source_proof: true
  reliance_boundary_visible_or_explicit_absent: true
  omitted_or_harmed_reader_visible_or_explicit_absent: true
  player_can_rehear_or_record_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_testimony_count_trigger: true
  no_relationship_score_trigger: true
  no_dashboard_or_lens_health_trigger: true

Valid source proof includes operator conclave rows, caption witness rows, access-caption reliance rows, recap fragments, callback carrier rows, protected witness payroll rows, public receipts, lawful annexes, route-asset proof, or equivalent.

Storyline spine

Beat 1 — Old testimony becomes newly unsafe

A future route tries to cite a proof row that was accepted earlier. The game must show who accepted it and on what scope: public, lawful, sponsor, caption-only, archive-only, route-only, split, accepted-with-scar, or equivalent.

Then the witness state changes: the witness is captured, protected under new conditions, public-sheltered, coerced silent, hostile, disappeared, masked by edit, corrected, narrowed, retracted, contradicted, or explicitly absent.

Beat 2 — The ledger opens

Create or update 证词翻供账本.

The ledger must name:

  • source proof id and source surface;
  • old accepted reader and accepted state;
  • witness id or explicit absence;
  • witness state before;
  • state-change source;
  • new statement state;
  • reliance reader;
  • omitted or harmed reader;
  • proof gap or explicit absence;
  • future route or reader that will consume the row.

Beat 3 — The player rehears reliance

Run 证词可靠性复听.

The player chooses whether to:

  • corroborate with second proof;
  • narrow the testimony to one reader or scope;
  • publish correction;
  • protect the recantation statement;
  • substitute proof;
  • quarantine reliance;
  • or let the old testimony be reused clean.

Beat 4 — A route survives, but proof is scarred

Every non-default branch may preserve a route or reader, but it must leave a durable scar: attached counterproof, narrowed scope, correction requirement, witness protection duty, substituted proof scar, quarantine, or costlier future access.

Valid future effects include:

  • upheld_with_scar;
  • public_only;
  • lawful_only;
  • sponsor_only;
  • caption_only;
  • split_required;
  • correction_required;
  • witness_protection_required;
  • proof_substitution_scar;
  • quarantined;
  • blocked;
  • hostile;
  • recovery_only.

Beat 5 — Default clean reuse gives the contradiction a narrator

If old testimony is consumed as clean without rehearing, 洁净证词复用默认 fires or arms.

The event records the false-clean claim, default narrator, harmed reader, target state after, and future route effect. It must change future acceptance; tone-only contradiction is invalid.

Branch map

BranchImmediate reliefCost/scarFuture state
Corroborateold proof remains usablewitness exposure, archive/lawful debt, handler burdenupheld_with_scar, costlier
Narrow scopeone reader can rely safelyomitted reader hostility, source ambiguitypublic_only, lawful_only, sponsor_only, caption_only, split_required
Publish correctionfuture reader is not misledsponsor pressure, inspection heat, short-term distrustcorrection_required, public_audit_required
Protect recantationcoercion/capture pressure is blockedwitness safety debt, delay, handler burdenwitness_protection_required, lawful_bridge_required
Substitute proofroute continues on new basisproof substitution scar, archive debtrecheck_required, costlier
Quarantine reliancefalse reuse is blockedroute delay, fan/sponsor/schedule pressurequarantined, blocked, recovery_only_if_ignored
Default clean reuseroute burden drops nowfalse-clean proof hardenshostile, blocked, recovery_only

No branch may create universal clean acceptance across public, sponsor, lawful, archive, caption, fan, route asset, and broadcast reality readers at once.

Character and route hooks

  • A protected operator from 操作员证词合议线 can remain useful only if the changed operator state is consumed.
  • A caption witness from 字幕证词羁押线 can narrow access proof into caption-only or correction-required state.
  • A witness saved or lost through 证人报复链 can force rehearing before a route asset unlock.
  • A recap fragment from 回顾分发漂移线 can inherit a recantation boundary when its operator or witness changes state.
  • A callback carrier from 回叫承载撞车线 can lose cross-reader validity when its witness refuses the later reader.

Missability and recovery

This storyline is missed when implementation:

  • treats old testimony as permanently clean;
  • lets a route asset unlock without reading changed witness state;
  • uses witness danger as flavor but never changes proof reliance;
  • hides the omitted or harmed reader;
  • lets sponsor, archive, public mood, or lawful stamp bypass rehearing;
  • opens from fixed turn, fixed day/week, raw count, relationship score, dashboard, or lens health.

Recovery is allowed only through visible scar:

  • late rehearing;
  • public correction;
  • lawful annex;
  • substituted proof;
  • protected recantation statement;
  • quarantine with route delay;
  • sacrifice of a route asset or proof object.

Recovery cannot make the original testimony clean for every reader retroactively.

Replay evidence expectation

storyline_id: storyteller.storyline.witness_recantation_reliance.v1
session_id: lens-witness-recantation-reliance-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  source_proof_present: true
  source_proof_accepted_by_reader: true
  witness_state_changed_or_new_statement_visible: true
  future_reader_or_route_would_reuse_source_proof: true
  no_fixed_turn_trigger: true
source_proof:
  source_proof_id: <row>
  source_surface: <surface>
  accepted_by_reader: <reader>
  accepted_state_before: <state>
witness:
  witness_id_or_absence: <witness or explicit_absence>
  witness_state_before: <state>
  state_change_source: <source>
  new_statement_state: <state>
reliance:
  reliance_reader: <reader>
  omitted_or_harmed_reader: <reader or explicit_absence>
  proof_gap_or_absence: <gap or explicit_absence>
  future_reader_or_route: <reader route asset or explicit_absence>
offered:
  card: storyteller.card.witness_recantation_ledger.v1
  rite: storyteller.rite.witness_reliability_rehearing.v1
branch_runs:
  constructive:
    selected_posture: corroborate | narrow_scope | publish_correction | protect_recantation | substitute_proof | quarantine_reliance
    future_effect: <effect>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default:
    event_seen_or_armed: storyteller.event.clean_testimony_reuse_default.v1
    false_clean_claim: <claim>
    default_narrator: <actor>
    harmed_or_omitted_reader: <reader>
    future_effect: <effect>
assertions:
  - entry_is_state_triggered
  - source_proof_and_old_reader_visible
  - witness_state_change_visible_or_absent
  - reliance_boundary_and_harmed_reader_visible
  - branch_outcomes_diverge
  - every_success_has_relief_cost_and_future_effect
  - default_clean_reuse_is_durable
  - future_reader_consumes_recantation_state
  - no_fixed_turn_day_week_raw_count_relationship_dashboard_or_lens_health_trigger

Non-goals

  • Not raw content-count expansion.
  • Not governance.
  • Not generic witness danger.
  • Not first testimony creation.
  • Not a global appeals system.
  • Not a duplicate of witness reprisal, caption witness custody, or operator conclave.
  • Not valid unless the changed witness/proof state changes future playable acceptance.