Evidence Carryover Fork Lens / 导出证据回流分岔 Lens
This lens observes whether 导出证据回流分岔线 and 导出证据回流分岔机制 correctly make prior exported proof return as current route-asset pressure.
The current corpus already has route asset states, proxy posture, claimant collision, consent debt, three-key custody, and replay-derived evidence expectations. The remaining gap is narrower: a proof object that survived an earlier branch must be able to come back later and change playable state. Without this lens, durable evidence can become inert provenance instead of a route object that can protect, accuse, capture, or poison a future branch.
This is a state-triggered lens. It must not depend on a fixed numbered turn.
Observable surface
The lens observes:
- a prior proof with a durable outcome from Route Assets and Custody or equivalent;
- 导出证据回流案卷 creation or update;
- 导出证据回流听证 offer and branch resolution;
- 导出证据回流反震 when the returned proof is denied, captured, overwritten cleanly, exposed without protection, traded cleanly, or accepted without debt;
- mutation of route asset state, claimant ownership, proxy posture, archive signature, consent debt, public receipt, sponsor pressure, or broadcast reality drift.
Must pass
A valid implementation must prove all of the following.
1. Entry is state-driven
The offer appears only when a returned proof can affect present custody.
Required entry evidence:
entry:
trigger_kind: state_pressure
carryover_source_present: true
prior_outcome_any:
- protected
- route_asset
- hostile
- captured
- false_owner
- split_canon
- recovery_only
current_claimant_present: true
rival_claimant_or_contradiction_present: true
affected_route_asset_present: trueThe lens fails if the offer appears from a fixed numbered trigger, a generic chapter transition, or a recap-only replay import.
2. Docket row is concrete
The implementation must expose at least one 导出证据回流案卷 row with:
carryover_id: <stable id>
evidence_object: archive_copy | fan_oxygen_receipt | black_box_checksum | memorial_air_copy | sponsor_counterclaim | consent_receipt | proxy_statement | equivalent
source_evidence:
source_session_id: <prior durable session id or explicit in-world source id>
source_seed: <prior seed if generated by replay evidence>
source_outcome: protected | route_asset | missed | hostile | captured | sacrificed | false_owner | split_canon | recovery_only | equivalent
source_route_asset_id: <route asset, docket, proxy, proof object, or event id>
claimants:
current_claimant: player | archive | inspector | sponsor | fan_public | editor | artist | pirate | proxy | split | none
rival_claimant: archive | inspector | sponsor | fan_public | editor | artist | pirate | proxy | split | none
contradiction_kind: owner_mismatch | consent_mismatch | checksum_mismatch | voice_mismatch | archive_signature_mismatch | memorial_right_mismatch | witness_sequence_mismatch | none
affected_route_asset:
route_asset_id: <stable id>
route_asset_before: unseen | offered | recruited | protected | route_asset | missed | hostile | captured | sacrificed | false_owner | recovery_only | blocked
available_uses:
- accept | quarantine | overwrite | trade | expose | deny
risk_if_ignored: hostile | captured | false_owner | contradiction_pending | recovery_only | blockedThe lens fails if the returning proof lacks source outcome, claimant conflict, contradiction, affected route asset, and ignored/default state.
3. Hearing is fillable and branchy
The implementation must offer 导出证据回流听证 when a concrete docket exists and at least one relevant input or explicit absence is available.
The hearing must support at least four non-equivalent branch families among:
- accept;
- quarantine;
- overwrite;
- trade;
- expose;
- deny.
Each branch must set different relief, cost, route state after, and future effect.
4. Branches cannot collapse
Accepting, quarantining, overwriting, trading, exposing, and denying a proof must not resolve to the same generic state.
Expected non-equivalence:
- accept opens lawful, public, or route access with debt;
- quarantine preserves proof while increasing recovery or schedule pressure;
- overwrite lowers immediate contradiction but creates source ambiguity or debt;
- trade lowers immediate pressure while creating faction gate or capture;
- expose opens public legitimacy while arming retaliation or protection debt;
- deny creates hostile, captured, false-owner, contradiction-pending, recovery-only, or blocked state.
5. No clean continuity repair
Any branch that improves route access, proof custody, archive signature, public receipt, voice integrity, sponsor pressure, or immediate contradiction must leave a scar.
Valid scars include:
- inspection heat;
- sponsor stop-loss pressure;
- edit debt;
- fan oxygen resentment;
- source ambiguity;
- consent debt;
- archive debt;
- handler burden;
- proxy exposure;
- broadcast reality drift;
- false custody owner;
- route capture;
- recovery route cost.
6. Aftershock mutates future play
When the returned proof is denied, captured, overwritten cleanly, exposed without protection, traded cleanly, unresolved, or accepted without debt, 导出证据回流反震 must mutate at least one durable future surface:
- route asset becomes hostile, captured, false-owner, contradiction-pending, recovery-only, costlier, lawful-only, public-only, or blocked;
- claimant ownership changes;
- proxy posture becomes exposed, hostile, faction-bound, missing, or recovery-only;
- public receipt, archive signature, consent debt, sponsor pressure, broadcast reality drift, or future route availability changes.
The event must not be a flavor-only contradiction reveal.
7. Carryover uses replay provenance but remains in-world
The source evidence may include session id and seed for executable proof, but the game object must still be an in-world proof: receipt, copy, checksum, voice proof, oxygen ledger, counterclaim, or statement.
The lens fails if the implementation imports a debug record that is not assigned to a current claimant, proof object, or route asset.
Branch assertions
Accept assertion
selected_branch: accept
route_asset_after_any:
- protected
- route_asset
- lawful_only
- public_only
relief_any:
- archive_signature_legitimacy_up
- route_access_unlocked
- public_receipt_legitimacy_up
- voice_integrity_up
cost_any:
- inspection_heat_up
- sponsor_stop_loss_pressure_up
- edit_debt_up
- handler_burden_up
future_effect_any:
- route_open_with_debt
- claimant_retaliation_armedQuarantine assertion
selected_branch: quarantine
route_asset_after_any:
- contradiction_pending
- recovery_only
- costlier
relief_any:
- false_owner_pressure_down
- archive_fraud_prevented
- voice_violation_prevented
cost_any:
- schedule_pressure_up
- audience_churn_up
- inspection_heat_up
- recovery_route_cost_up
future_effect_any:
- follow_up_hearing_required
- recovery_only_route_remainsOverwrite assertion
selected_branch: overwrite
route_asset_after_any:
- split_canon
- contradiction_pending
- blocked
relief_any:
- immediate_contradiction_down
- sponsor_default_down
- schedule_pressure_down
cost_any:
- source_ambiguity_up
- public_receipt_distrust_up
- archive_debt_up
- consent_debt_up
future_effect_any:
- clean_use_blocked
- hostile_witness_possibleTrade assertion
selected_branch: trade
route_asset_after_any:
- captured
- costlier
- lawful_only
- public_only
relief_any:
- immediate_pressure_down
- lawful_use_possible
- room_access_unlocked
- sponsor_retaliation_delayed
cost_any:
- route_capture_up
- bureau_favor_debt_up
- contract_capture_up
- source_ambiguity_up
future_effect_any:
- faction_gate_required
- route_costlierExpose assertion
selected_branch: expose
route_asset_after_any:
- public_only
- route_asset
- hostile
- costlier
relief_any:
- public_receipt_legitimacy_up
- fan_witness_legitimacy_up
- private_capture_blocked
cost_any:
- inspection_heat_up
- sponsor_stop_loss_pressure_up
- proxy_exposure_up
- broadcast_reality_drift_up
future_effect_any:
- public_route_open_with_retaliation
- protection_requiredDeny assertion
selected_branch: deny
route_asset_after_any:
- hostile
- captured
- false_owner
- contradiction_pending
- recovery_only
- blocked
emitted_event: storyteller.event.evidence_carryover_aftershock.v1
cost_any:
- false_custody_owner_up
- hostile_counterclaim_up
- archive_debt_up
- route_asset_pressure_up
future_effect_any:
- route_blocked_until_substitute
- hostile_evidence_branch_armed
- recovery_only_route_remainsFailure cases
The lens must fail if any of these are true:
- entry is triggered by a fixed numbered turn;
- a prior proof returns without a concrete in-world object;
- the docket lacks source outcome, current claimant, rival claimant or contradiction, affected route asset, and ignored/default state;
- session id or replay provenance is used as a substitute for playable proof;
- accept, quarantine, overwrite, trade, expose, and deny collapse into the same outcome;
- acceptance is clean and costless;
- quarantine removes all future pressure;
- overwrite creates no source ambiguity, debt, distrust, or hostile witness risk;
- trade has no faction gate, capture, or route cost;
- exposure has no retaliation, protection, or drift cost;
- denial only discards the proof with no route-state mutation;
- aftershock is flavor-only;
- replay evidence lacks source session, carryover id, branch selection, route state before/after, claimant movement, and counter deltas.
Progress metric
Progress is measured by branch observability, not by number of pages.
- 20%: a prior proof with durable outcome can create an evidence carryover docket row.
- 40%: the row records source evidence, claimants, contradiction, affected route asset, and ignored/default state.
- 60%: the hearing offers at least four non-equivalent branch families.
- 80%: at least one positive branch and one negative/aftershock branch produce different route-state and counter deltas.
- 100%: replay proves a returned proof from a prior durable session mutates a later route asset with source session id, carryover id, branch choice, assigned inputs, route state before/after, claimant movement, and counter deltas.
Minimal replay evidence shape
lens: storyteller.lens.evidence_carryover_fork.v1
result: pass | fail
source_evidence:
source_session_id: <prior durable session id>
source_seed: <prior seed>
source_route_asset_id: <route asset, docket, proxy, proof object, or event id>
source_outcome: protected | route_asset | hostile | captured | false_owner | split_canon | recovery_only | equivalent
carryover_entry:
session_id: <current session id>
seed: <current seed>
trigger_kind: state_pressure
offered_card: storyteller.card.evidence_carryover_docket.v1
carryover_id: <stable id>
evidence_object: <object type>
current_claimant: <claimant>
rival_claimant: <claimant or none>
contradiction_kind: <kind>
route_asset_before: <state>
hearing:
session_id: <current or follow-up session id>
seed: <seed>
offered_rite: storyteller.rite.evidence_carryover_hearing.v1
selected_branch: accept | quarantine | overwrite | trade | expose | deny
assigned_inputs:
handler: <handler or explicit_absence>
proof_anchor: <proof or none>
public_cover: <cover or none>
legal_cover: <cover or none>
editor_cover: <cover or none>
settlement_cover: <cover or none>
proxy_carrier: <proxy, runner, witness, or explicit_absence>
outcome:
route_asset_after: protected | route_asset | costlier | hostile | captured | lawful_only | public_only | split_canon | contradiction_pending | recovery_only | blocked
claimant_who_gains: <claimant or none>
claimant_who_loses: <claimant or none>
future_route_effect: <effect>
counter_deltas:
relief:
- <relief counter or state>
cost:
- <cost counter or state>
aftershock:
emitted_event: storyteller.event.evidence_carryover_aftershock.v1 | none_if_valid_branch
aftershock_cause: unresolved | denied | overwritten_cleanly | captured_before_hearing | exposure_without_protection | traded_cleanly | accepted_without_debt | none
assertions:
entry_state_driven: true
in_world_proof_object: true
docket_row_concrete: true
branch_non_equivalence: true
continuity_repair_has_scar: true
aftershock_mutates_future_play: true
replay_provenance_preserved: true
no_fixed_turn_trigger: trueNon-goals
- Not a generic save/reload feature.
- Not a replay log viewer.
- Not raw route-asset count fulfillment.
- Not a central governance checklist.
- Not a fixed-turn content trigger.
- Not a clean retcon mechanism.
- Not valid unless a returned proof changes current route assets, claimants, counters, and future availability.