Replay-Resume Collision Lens / 复盘接手冲突 Lens

This lens observes whether 复盘接手冲突线 correctly prevents 复盘导出匣 and 复盘接手包案卷 from laundering each other when they describe the same source branch, route asset, or future reader.

A passing implementation proves that the capsule state and packet row state are both visible, the collision kind is classified, the beneficiary and harmed reader are named, the player can reconcile through an assigned rite, and a future reader consumes the resulting collision state. It fails if replay export and resume triage are individually correct but their intersection becomes clean by implication.

This lens is state-triggered. It must not depend on a fixed numbered turn.

This lens observes:

It is observed through:

Observable promise

Whenever a resumed hand consumes a branch that also has an export capsule, the game must answer:

What does the capsule say, what does the packet say, where do they disagree, who benefits if the disagreement is ignored, who is harmed, and what future route or reader changes after reconciliation?

The lens fails if either surface silently makes the other one clean.

Must pass

1. Entry is state-triggered by shared branch collision

Required evidence:

entry_state:
  trigger_kind: state_pressure
  replay_capsule_present: true
  resume_packet_present: true
  shared_source_branch_or_route_asset_present: true
  future_reader_or_route_consumes_both_surfaces: true
  capsule_state_visible: true
  packet_row_state_visible_or_explicit_absence: true
  collision_kind_visible: true
  beneficiary_if_unreconciled_visible_or_explicit_absence: true
  harmed_reader_or_claimant_visible_or_explicit_absence: true
  player_can_reconcile_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_replay_count_trigger: true
  no_raw_row_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

The lens fails if entry depends on fixed turn number, day/week interval, chapter quota, raw replay count, raw hand-row count, dashboard state, lens-health state, or a generic resume/export phase.

2. Capsule and packet states are separately visible

Replay-Resume Collision Docket or equivalent must record both sides without collapsing them.

separate_state_required:
  source:
    source_session_id_or_handoff: <session id handoff tray archive tray producer station or explicit_absence>
    source_branch_id: <branch id>
    route_asset_or_absence: <asset or explicit_absence>
    future_reader_or_route: <reader route rite desk claimant or explicit_absence>
  replay_side:
    replay_capsule_id: storyteller.card.replay_export_capsule.v1
    capsule_state_before: scoped | sealed | lawful_only | traded | sponsor_only | exposed | public_only | quarantined | recovery_only | blocked | misattributed | captured | false_clean | equivalent
    capsule_custodian_or_absence: <custodian or explicit_absence>
    capsule_counter_branch_or_absence: <branch or explicit_absence>
    capsule_future_reader_effect: <effect>
  resume_side:
    resume_packet_id: storyteller.card.resume_packet_docket.v1
    packet_row_id_or_absence: <row id or explicit_absence>
    packet_state_before: balanced_packet | claimant_priority_packet | sponsor_safe_packet | inspector_first_packet | fan_public_warning_packet | editor_checksum_packet | quarantined_packet | hidden_row_default | clean_absent | equivalent
    packet_owner_or_absence: <owner or explicit_absence>
    row_visible_in_packet: true | false
    omission_register_or_absence: <register or explicit_absence>

The lens fails if the replay side is summarized as proof exists, if the packet side is summarized as row active, or if the packet treats capsule scope as implicit readiness.

3. Collision classification is visible

The docket must identify a collision kind, beneficiary, harmed reader, and future reader.

Accepted collision kinds include:

collision_kind_any:
  - capsule_scoped_packet_clean
  - capsule_sealed_packet_public
  - capsule_traded_packet_balanced
  - capsule_exposed_packet_sponsor_safe
  - capsule_quarantined_packet_ready
  - capsule_refused_packet_required
  - capsule_misattributed_packet_hidden
  - capsule_recovery_only_packet_fresh
  - capsule_reader_scope_missing_from_packet
  - resume_omission_hides_capsule_counter_branch
  - equivalent
classification_required:
  beneficiary_if_unreconciled: sponsor | inspector | archive | editor | fan_public | management | producer | route_claimant | blackout_system | explicit_absence
  harmed_reader_or_claimant: <reader claimant or explicit_absence>
  future_reader_or_route: <reader route rite desk claimant or explicit_absence>

The lens fails if the implementation records only a generic inconsistency, warning, merge prompt, or debug conflict.

4. Reconciliation rite assignment slots are explicit

复盘接手对表 or equivalent must require concrete assignment:

assignment_required:
  rite: storyteller.rite.replay_resume_reconciliation.v1
  docket: storyteller.card.replay_resume_collision_docket.v1
  replay_capsule_present: true
  resume_packet_present: true
  shared_source_branch_or_route_asset_present: true
  future_reader_or_route_present: true
  collision_kind_visible: true
  reconciliation_handler_or_absence: <producer archive clerk inspector editor sponsor liaison public delegate logistics carrier or explicit_absence>
  capsule_custodian_or_absence: <custodian or explicit_absence>
  packet_owner_or_absence: <owner or explicit_absence>
  source_branch_proof_or_absence: <proof anchor or explicit_absence>
  omitted_counter_branch_or_absence: <counter branch or explicit_absence>
  harmed_reader_or_claimant_or_absence: <reader claimant or explicit_absence>
  bridge_or_cost_or_absence: <proof bridge cost scar or explicit_absence>
  selected_posture: merge_with_scar | split_packet_and_capsule | privilege_capsule_scope | privilege_packet_visibility | quarantine_collision | assign_counter_reader | accept_collision_default

The lens fails if sponsor money, inspector seal, editor checksum, public pressure, management priority, or producer authority resolves the collision without these slots.

5. Branch postures diverge

A valid implementation must offer these branch families or explicitly block unavailable families with state reasons:

  • merge_with_scar;
  • split_packet_and_capsule;
  • privilege_capsule_scope;
  • privilege_packet_visibility;
  • quarantine_collision;
  • assign_counter_reader;
  • accept_collision_default.

Branches must differ by collision state after, which surface is privileged or split, harmed reader handling, counter deltas, and future route effect.

6. Branch assertions

Merge with scar assertion

selected_posture: merge_with_scar
state_after: merged_with_scar
relief_any: [active_hand_legibility_up, capsule_legibility_up, future_reader_acceptance_up]
cost_any: [handler_burden_up, scar_visibility_up, sponsor_or_inspector_pressure_up]
future_effect_any: [accepted_with_scope, packet_row_cites_capsule_state, capsule_names_packet_row]
forbidden: [merge_as_clean_ready]

Split packet and capsule assertion

selected_posture: split_packet_and_capsule
state_after: split_required
relief_any: [false_clean_resume_down, counter_branch_visibility_up]
cost_any: [schedule_pressure_up, future_reconciliation_cost_up]
future_effect_any: [route_requires_dual_reader, public_or_lawful_addendum_required]
forbidden: [split_as_universal_acceptance]

Privilege capsule scope assertion

selected_posture: privilege_capsule_scope
state_after: capsule_privileged
relief_any: [replay_capsule_integrity_up, misattribution_risk_down]
cost_any: [active_hand_capacity_pressure_up, omitted_packet_rows_watchlisted]
future_effect_any: [packet_must_respect_capsule_scope, sponsor_or_editor_packet_narrowed]
forbidden: [capsule_scope_as_packet_cleanliness]

Privilege packet visibility assertion

selected_posture: privilege_packet_visibility
state_after: packet_privileged
relief_any: [immediate_triage_speed_up, active_hand_legibility_up]
cost_any: [capsule_clearance_cost_up, future_reader_distrust_up]
future_effect_any: [capsule_attestation_required_later, route_costlier_if_capsule_reader_objects]
forbidden: [packet_visibility_as_capsule_attestation]

Quarantine collision assertion

selected_posture: quarantine_collision
state_after: collision_quarantined
relief_any: [false_clean_resume_down, false_clean_replay_down]
cost_any: [route_delay_up, management_pressure_up]
future_effect_any: [blocked_until_bridge, packet_rebuild_required]
forbidden: [quarantine_as_free_deferral]

Assign counter-reader assertion

selected_posture: assign_counter_reader
state_after: counter_reader_assigned
relief_any: [harmed_reader_erasure_down, public_or_lawful_rebuttal_legible]
cost_any: [inspection_heat_up, sponsor_stop_loss_pressure_up, edit_debt_up]
future_effect_any: [appeal_or_rebuttal_route_opened, future_reader_accepts_with_challenge]
forbidden: [counter_reader_as_flavor_only]

Collision default assertion

selected_posture: accept_collision_default
state_after: collision_defaulted
event_seen_or_armed: storyteller.event.capsule_row_collision_default.v1
relief_any: [immediate_triage_burden_down]
cost_any: [contradiction_pending_up, false_clean_resume_up, future_recovery_cost_up]
future_effect_any: [blocked, costlier, lawful_appeal_required, public_addendum_required, sponsor_gate_required, edit_checksum_required, packet_rebuild_required, capsule_attestation_required, recovery_only]
forbidden: [default_as_warning_only]

7. Every constructive branch has relief, cost, and future effect

Every non-default branch must satisfy:

counter_contract:
  relief_min: 1
  cost_min: 1
  future_reader_or_route_effect_min: 1
  collision_state_changes: true

The lens fails if reconciliation only improves legibility, resolves a UI warning, or changes immediate hand contents without changing future route/readability.

8. Collision default is durable

匣行冲突默认 must fire or be armed when the player proceeds without reconciliation, when the future reader consumes both surfaces but no collision state is present, or when one surface files a false claim about the other.

default_required:
  event: storyteller.event.capsule_row_collision_default.v1
  source_branch_id: <branch id>
  route_asset_or_absence: <asset or explicit_absence>
  replay_capsule_state_before: <state>
  resume_packet_state_before: <state>
  packet_row_id_or_absence: <row id or explicit_absence>
  capsule_custodian_or_absence: <custodian or explicit_absence>
  packet_owner_or_absence: <owner or explicit_absence>
  collision_kind: <kind>
  default_actor: sponsor | inspector | archive | editor | fan_public | management | producer_absence | route_claimant | broadcast_reality | equivalent
  harmed_reader_or_claimant: <reader claimant or explicit_absence>
  false_claim: packet_clean_so_capsule_clean | capsule_exists_so_row_visible | capsule_scope_covers_packet | packet_priority_erases_counter_branch | recovery_only_loaded_as_fresh | equivalent
  state_after: false_clean_resume | misattributed_capsule | sponsor_only_resume | lawful_only_resume | public_only_resume | editor_smoothed_resume | contradiction_pending | hostile_reader | blocked | recovery_only
  future_route_effect: blocked | costlier | lawful_appeal_required | public_addendum_required | sponsor_gate_required | edit_checksum_required | packet_rebuild_required | capsule_attestation_required | recovery_only
  counter_deltas_min: 3

The default fails if it changes only prose, immediate mood, notification state, debug status, or generic reputation.

9. Future reader consumes collision state

At least one downstream route, rite, reader, desk, claimant, loadout, replay export, resume packet, appeal, public addendum, sponsor gate, edit checksum, or broadcast-reality patch must accept, reject, split, surcharge, block, or convert to recovery-only based on the collision state.

future_consumption_required:
  future_reader_or_route: <reader route rite desk claimant or explicit_absence>
  collision_state_before_consumption: merged_with_scar | split_required | capsule_privileged | packet_privileged | collision_quarantined | counter_reader_assigned | collision_defaulted
  accepted_collision_states: []
  rejected_or_costlier_collision_states: []
  future_reader_or_route_effect: <effect>

The lens fails if counters move but future offers, blocked reasons, reader acceptance, custody state, or recovery cost remain identical.

10. No clean mutual laundering

The following are hard failures:

  • scoped capsule becomes clean packet readiness;
  • sealed capsule becomes public packet proof;
  • sponsor-only capsule becomes balanced packet truth;
  • exposed public capsule is hidden by sponsor-safe packet;
  • quarantined or recovery-only capsule is loaded as fresh;
  • packet omission erases capsule counter-branch;
  • capsule existence proves hidden row visibility;
  • packet visibility proves capsule attestation;
  • future route consumes both surfaces without collision state;
  • entry uses fixed turn, fixed day/week, raw replay count, raw row count, dashboard, or lens health.

Replay evidence shape

lens_id: storyteller.lens.replay_resume_collision.v1
result: pass | fail
session_id: lens-replay-resume-collision-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  replay_capsule_present: true
  resume_packet_present: true
  shared_source_branch_or_route_asset_present: true
  future_reader_or_route_consumes_both_surfaces: true
  capsule_state_visible: true
  packet_row_state_visible_or_explicit_absence: true
  collision_kind_visible: true
  no_fixed_turn_trigger: true
source:
  source_session_id_or_handoff: <session id handoff tray archive tray producer station or explicit_absence>
  source_branch_id: <branch id>
  route_asset_or_absence: <asset or explicit_absence>
  future_reader_or_route: <reader route rite desk claimant or explicit_absence>
active_objects:
  card: storyteller.card.replay_resume_collision_docket.v1
  rite: storyteller.rite.replay_resume_reconciliation.v1
  default_event: storyteller.event.capsule_row_collision_default.v1
replay_side:
  replay_capsule_id: storyteller.card.replay_export_capsule.v1
  capsule_state_before: <state>
  capsule_custodian_or_absence: <custodian or explicit_absence>
  capsule_counter_branch_or_absence: <branch or explicit_absence>
resume_side:
  resume_packet_id: storyteller.card.resume_packet_docket.v1
  packet_row_id_or_absence: <row id or explicit_absence>
  packet_state_before: <state>
  packet_owner_or_absence: <owner or explicit_absence>
  row_visible_in_packet: true | false
  omission_register_or_absence: <register or explicit_absence>
collision:
  collision_kind: <kind>
  beneficiary_if_unreconciled: <actor or explicit_absence>
  harmed_reader_or_claimant: <reader claimant or explicit_absence>
assignment:
  reconciliation_handler_or_absence: <handler or explicit_absence>
  source_branch_proof_or_absence: <proof or explicit_absence>
  omitted_counter_branch_or_absence: <branch or explicit_absence>
  bridge_or_cost_or_absence: <bridge cost scar or explicit_absence>
branch_result:
  selected_posture: merge_with_scar | split_packet_and_capsule | privilege_capsule_scope | privilege_packet_visibility | quarantine_collision | assign_counter_reader | accept_collision_default
  collision_state_after: <state>
  emitted_event: storyteller.event.capsule_row_collision_default.v1 | none_if_valid
  future_reader_or_route_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  primary_links_exist: true
  replay_and_resume_states_separate: true
  collision_kind_beneficiary_and_harmed_reader_visible: true
  assignment_slots_explicit: true
  branch_postures_diverge: true
  constructive_success_has_cost: true
  default_is_durable: true
  future_reader_consumes_collision_state: true
  no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger: true

Progress metric

Progress is measured by branch observability rather than volume.

  • 20%: replay capsule and resume packet are both present and tied to the same source branch, asset, or future reader.
  • 40%: collision kind, beneficiary, harmed reader, and future reader are visible.
  • 60%: reconciliation rite exposes assignment slots and at least three constructive branch families.
  • 80%: default creates durable route, reader, custody, contradiction, or recovery cost.
  • 100%: at least two replay/session branches prove divergent reconciliation outcomes and future reader consumption.

Non-goals

  • Not replay UI.
  • Not a save-file merge algorithm.
  • Not a generic active-hand cleanup lens.
  • Not dashboard, governance, or lens-health monitoring.
  • Not a fixed-turn aftermath.
  • Not raw count satisfaction.
  • Not valid unless the collision changes future route availability, reader acceptance, custody state, or recovery cost.