Cen Wei Temporary Chain Runner Lens / 岑微临时交接跑腿 Lens
This lens observes whether 岑微 and 岑微临时交接跑腿线 turn field custody into a concrete RPG state.
A pass requires a movable contested proof object, at least two claimant factions, visible Cen Wei state or explicit absence, an assignable permit or cover, a handler or explicit absence, divergent transfer branches, durable hostile/captured/missed states, and a future reader that consumes the runner state.
Primary observation link
This lens observes:
Exact runtime packet
The executable surface begins with exactly eight Storyteller starter objects:
| Required slot | Exact in-hand object |
|---|---|
runner | card-storyteller-cen-wei-temporary-chain-runner |
permit | card-storyteller-inspection-shadow-crew-permit |
proof_object | storyteller.card.cen_wei_contested_proof_packet.v1 |
archive_claimant | storyteller.card.cen_wei_archive_claimant.v1 |
rival_claimant | storyteller.card.cen_wei_public_claimant.v1 |
handler | storyteller.card.cen_wei_chain_handler.v1 |
cover | storyteller.card.cen_wei_custody_cover.v1 |
future_reader | storyteller.card.cen_wei_future_chain_reader.v1 |
All eight slots are required and each accepts only its listed object. The lens fails on substituted cards, tag-only or generic matches, virtual assignments, an object missing from hand, an omitted slot, a mixed tuple, or rite resolution without a selected choice. An explicit absence remains a possible terminal person-state; it is not a valid substitute for any executable assignment slot.
Gap this lens targets
The inspection-shadow pack already rejects a clean high-rank authority button. This lens targets the character gap: Cen Wei can still be reduced to carrier present unless implementation records her state separately from the proof packet.
The lens fails if:
- a proof packet moves with no carrier or explicit absence;
- Han Yanshuang, Yu Lan, Baiya, Shen Luo, sponsor, archive, or inspector authority fills the carrier slot by itself;
- the permit state changes but Cen Wei’s person-state does not;
- captured, suppressed, hostile, sacrificed, or missed runner states have no future route cost;
- future proof or route readers consume the packet without reading whether Cen Wei was protected, captured, missed, or made hostile.
Must pass
1. Entry is state-triggered by contested physical proof
entry_state_required:
trigger_kind: state_pressure
movable_or_uncertain_proof_present: true
proof_object_can_change_future_route_or_counter: true
claimant_factions_count_min: 2
cen_wei_state_or_explicit_absence_visible: true
carrier_slot_required_or_absence_recorded: true
permit_cover_or_explicit_absence_visible: true
handler_or_explicit_absence_visible: true
future_reader_or_route_consumes_chain_state: true
player_can_authorize_publicize_mask_bypass_sponsor_cover_sacrifice_or_record_absence: true
non_neutral_default_exists: true
no_fixed_turn_trigger: true
no_fixed_day_or_phase_trigger: true
no_raw_runner_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if entry comes from fixed chronology, a raw runner count, chapter quota, lens health, dashboard status, or a generic “evidence ready” flag.
2. Proof object and claimants are concrete
Inspection Shadow Crew Permit or equivalent must record:
proof_pressure_required:
proof_object: <stable proof object id>
proof_object_family: fan_oxygen_receipt | archive_docket_copy | black_box_fragment | consent_printout | witness_stub | memorial_air_copy | voice_custody_receipt | route_asset_packet | recovery_counterstub | public_receipt_fragment | equivalent
proof_state_before: movable | physically_uncertain | contested | copied | unfiled | exposed | suppressed | equivalent
claimant_factions:
- archive | inspector | sponsor | fan_public | unauthorized_historian | editor | artist | pirate | false_owner | production | equivalent
- second_claimant_or_equivalent
affected_future_surface: route_unlock | audit | public_receipt | proof_burden | consent_debt | memorial_air_chain | receipt_counterclaim | route_asset_maintenance | equivalentThe lens fails if the row stores only evidence, receipt, packet, or transfer needed with no object id, claimant conflict, or future consumer.
3. Cen Wei state or explicit absence is visible
runner_state_required:
carrier: storyteller.npc.cen_wei_temporary_chain_runner.v2 | other_runner | explicit_absence
cen_wei_state_before: crew_unseen | crew_offer_ready | runner_authorized | lawful_chain_witness | public_receipt_carrier | editor_masked_carrier | neutral_route_asset | suppressed_carrier | hostile_leak_source | captured_carrier | sacrificed_permit | explicit_absence
carrier_slot_reason: service_corridor | backstage_handoff | inspection_shadow | public_receipt_delivery | black_box_fragment_move | memorial_air_copy_move | route_asset_packet_move | equivalent
permit_or_cover: inspection_shadow_crew_permit | audit_oath | public_receipt | editor_mask | sponsor_cover | production_cover | none | explicit_absence
handler_or_absence: han_yanshuang | yu_lan | baiya | shen_luo | sponsor | production | fan_delegate | archive_clerk | explicit_absence
future_reader: shadow_evidence_transfer | memorial_air_chain | proof_burden | receipt_counterclaim | route_asset_reader | protected_witness_payroll | equivalentThe lens fails if Cen Wei is only an inventory card, a helper tag, a generic worker, affinity, or dialogue flag.
4. Permit row keeps runner state separate from proof state
The permit or transfer row must keep four locks separate:
ledger_locks_required:
proof_lock:
proof_object: <object id>
proof_state_before: <state>
future_effect_if_unworked: blocked | costlier | lawful_only | public_only | false_owner_pressure | recovery_only | equivalent
claimant_lock:
claimant_factions_min: 2
claimant_pressure: archive | inspector | sponsor | fan_public | editor | artist | pirate | false_owner | production | equivalent
runner_lock:
cen_wei_state_before: <state or explicit_absence>
carrier_slot: cen_wei | other_runner | explicit_absence
runner_risk_before: none | low | armed | live | defaulted
reader_lock:
permit_or_cover: <cover or explicit_absence>
handler_or_absence: <handler or explicit_absence>
future_reader: <reader>
state_if_ignored: suppressed_carrier | hostile_leak_source | captured_carrier | carrier_absent_false_chain | shadow_crew_custody_leak | equivalentThe lens fails if the proof object becomes valid while Cen Wei’s state is overwritten, implied, or left behind.
5. Shadow transfer has eight exact slots
Shadow Evidence Transfer or equivalent must require:
assignment_required:
runner: card-storyteller-cen-wei-temporary-chain-runner
permit: card-storyteller-inspection-shadow-crew-permit
proof_object: storyteller.card.cen_wei_contested_proof_packet.v1
archive_claimant: storyteller.card.cen_wei_archive_claimant.v1
rival_claimant: storyteller.card.cen_wei_public_claimant.v1
handler: storyteller.card.cen_wei_chain_handler.v1
cover: storyteller.card.cen_wei_custody_cover.v1
future_reader: storyteller.card.cen_wei_future_chain_reader.v1Generic choices such as move evidence, send courier, ask inspector, or publish receipt fail. All eight exact cards must be in hand and assigned to their matching slots, and one of the eight stable choices must be selected.
6. Branches diverge by runner state
A satisfying implementation must expose exactly these stable choice ids and their matching branch families:
authorize_runner_lawful_custody→lawful_chain;route_runner_to_public_receipt→public_receipt_chain;mask_runner_under_editor_checksum→editor_mask;retain_runner_as_production_neutral→production_neutral_route;accept_sponsor_cover_capture→sponsor_cover;suppress_runner_access→managed_bypass_or_suppress;sacrifice_runner_permit→sacrifice_carrier_or_permit;abandon_runner_to_pirate_loop→leak_capture_or_hostile.
Branches must differ by Cen Wei state, proof object state, claimant or reader state, counter deltas, and future route effect.
Branch assertions
branch_assertions:
lawful_chain:
cen_wei_state_after_any: [lawful_chain_witness, neutral_route_asset]
relief_any: [custody_clarity_up, proof_legibility_up, admissibility_up]
cost_any: [inspection_heat_up, bureau_favor_debt_up, lawful_only_route, runner_risk_up]
future_effect_any: [lawful_proof_with_cost, audit_required]
public_receipt_chain:
cen_wei_state_after: public_receipt_carrier
relief_any: [public_receipt_legitimacy_up, private_capture_blocked]
cost_any: [sponsor_stop_loss_pressure_up, fan_oxygen_liability_up, public_exposure_up]
future_effect_any: [public_only, receipt_bound, costlier]
editor_mask:
cen_wei_state_after: editor_masked_carrier
relief_any: [retaliation_risk_down, continuity_hazard_down]
cost_any: [edit_debt_up, archive_debt_up, source_ambiguity_up]
future_effect_any: [checksum_only, contradiction_pending]
production_neutral_route:
cen_wei_state_after: neutral_route_asset
relief_any: [future_small_chain_option_available, faction_capture_delayed]
cost_any: [payroll_leak_up, handler_burden_up, recovery_cost_up]
future_effect_any: [reusable_once_with_cost]
sponsor_cover:
cen_wei_state_after_any: [suppressed_carrier, captured_carrier, neutral_route_asset]
relief_any: [slot_pressure_down, retaliation_pressure_down]
cost_any: [contract_capture_up, public_distrust_up, ownership_debt_up]
future_effect_any: [sponsor_only, captured, rescue_required]
managed_bypass_or_suppress:
cen_wei_state_after_any: [suppressed_carrier, explicit_absence]
relief_any: [immediate_desk_pressure_down]
cost_any: [custody_gap_up, proof_burden_up, carrier_option_lost]
future_effect_any: [transfer_costlier, route_blocked, recovery_only]
sacrifice_carrier_or_permit:
cen_wei_state_after_any: [sacrificed_permit, hostile_leak_source, explicit_absence]
relief_any: [stronger_proof_preserved_now]
cost_any: [witness_debt_up, legitimacy_debt_up, hostile_testimony_armed]
future_effect_any: [recovery_only, leak_armed]
leak_capture_or_hostile:
emitted_event: storyteller.event.shadow_crew_custody_leak.v2
cen_wei_state_after_any: [hostile_leak_source, captured_carrier, explicit_absence]
cost_any: [false_owner_pressure_up, archive_debt_up, sponsor_retaliation_up, recovery_cost_up]
future_effect_any: [hostile, blocked, captured, recovery_only]Every constructive branch must have relief, cost, and future mutation.
7. Default event is durable
Shadow Crew Custody Leak must fire or arm when the transfer hides the carrier slot, the proof object moves without a named carrier or explicit absence, Cen Wei is suppressed without cost, a sponsor or archive captures the gap, or a future reader consumes chain state with no runner/person-state.
Required default record:
default_required:
event: storyteller.event.shadow_crew_custody_leak.v2
source_rite: storyteller.rite.shadow_evidence_transfer.v2 | equivalent
proof_object: <stable object id>
claimant_exploiting_gap: <claimant id>
cen_wei_state_or_absence: <state or explicit_absence>
missing_inputs: [proof_object | claimant_factions | carrier | permit_or_cover | handler | future_reader | equivalent]
carrier_state_after: lawful_chain_witness | public_receipt_carrier | editor_masked_carrier | suppressed_carrier | hostile_leak_source | captured_carrier | sacrificed_permit | explicit_absence
route_or_proof_state_after: protected | lawful_only | public_only | costlier | contradiction_pending | false_owner_pressure | recovery_only | blocked | equivalent
counter_deltas_min: 3The default fails if it changes only mood, generic reputation, a flavor leak, or a one-time evidence flag.
The event itself has exactly four terminal options:
| Option | Terminal state | Future effect |
|---|---|---|
record_hostile_leak | hostile_leak_source | hostile |
record_sponsor_capture | captured_carrier | rescue_required |
record_public_correction | public_correction_witness | public_correction_required |
record_recovery_only | explicit_absence | recovery_only |
Each option must clear all three pending flags and mutate the proof state, harmed reader, future route, and four counters. A missing terminal choice or an unlisted fifth outcome fails.
No universal clean runner
No branch may make one temporary carrier satisfy every archive, sponsor, public, editor, route-asset, lawful, and broadcast-reality reader cleanly.
no_universal_clean_runner:
proof_object_visible: true
claimant_factions_min: 2
cen_wei_state_visible_or_absence_recorded: true
future_reader_visible: true
at_least_one_reader_narrowed_or_costed: trueReplay proof contract
Durable replay evidence is limited to:
lens/replays/cen-wei-temporary-chain-runner.recruit.replay.json;lens/replays/cen-wei-temporary-chain-runner.hostile-default.replay.json.
Both replay session ids must begin with lens-storyteller-lens-character-cen-wei-temporary-chain-runner-v1-.
lens_id: storyteller.lens.character.cen_wei_temporary_chain_runner.v1
session_id: lens-storyteller-lens-character-cen-wei-temporary-chain-runner-v1-<timestamp>
replay_paths:
- lens/replays/cen-wei-temporary-chain-runner.recruit.replay.json
- lens/replays/cen-wei-temporary-chain-runner.hostile-default.replay.json
entry_state:
trigger_kind: state_pressure
movable_or_uncertain_proof_present: true
claimant_factions_count_min: 2
cen_wei_state_or_explicit_absence_visible: true
future_reader_or_route_consumes_chain_state: true
offered:
npc: storyteller.npc.cen_wei_temporary_chain_runner.v2
card: storyteller.card.inspection_shadow_crew_permit.v2
rite: storyteller.rite.shadow_evidence_transfer.v2
resolved:
selected_branch: <branch>
cen_wei_state_after: <state>
proof_object_state_after: <state>
future_reader_effect: <effect>
default:
event_seen_or_armed: storyteller.event.shadow_crew_custody_leak.v2 | none
assertions:
- proof_object_claimants_carrier_cover_handler_and_future_reader_are_visible
- cen_wei_state_or_explicit_absence_is_visible
- branch_families_diverge_by_runner_state
- default_custody_leak_is_durable
- future_reader_consumes_cen_wei_stateFails if
- proof moves with no carrier or explicit absence;
- high-rank authority replaces the carrier slot;
- the permit state changes but Cen Wei’s state remains neutral or hidden;
- hostile, captured, suppressed, sacrificed, or missed runner states have no future cost;
- future readers consume the proof packet without consuming the runner state;
- the line opens from fixed turn, day, phase, raw count, dashboard, or lens health.