Manual Transfer Switch Custody Lens / 手动切换钥匙羁押 Lens
This lens observes whether 手动切换钥匙羁押线 correctly closes the execution gap between emergency power priority and physical transfer.
A passing implementation proves that Emergency Power Priority is not itself proof that the selected surface received power. The game must expose the transfer object, holder, operator or explicit absence, witness/seal or explicit absence, intended powered surface, actual or disputed thrown surface, harmed reader, and future route effect.
Entry oracle
entry_state_required:
trigger_kind: state_pressure
source_power_priority_row_present: true
transfer_object_or_explicit_absence_present: true
intended_powered_surface_present: true
physical_throw_can_change_power_state: true
holder_or_operator_visible_or_explicit_absence: true
actual_or_disputed_thrown_surface_visible_or_explicit_absence: true
future_reader_or_route_consumes_switch_state: true
no_fixed_turn_trigger: true
no_fixed_day_or_week_trigger: true
no_raw_power_count_trigger: true
no_dashboard_or_lens_health_trigger: trueThe lens fails if entry depends on fixed chronology, raw power count, dashboard state, lens health, or generic generator pressure without a source power row and physical transfer object.
Ledger oracle
手动切换账本 or equivalent must record:
ledger_required:
source_power_row:
source_card: storyteller.card.emergency_power_ledger.v1
power_source: <source>
intended_powered_surface: <surface>
priority_claim: <claim or explicit_absence>
transfer_object:
object_kind: transfer_key | breaker_tag | override_seal | switch_room_witness | generator_handoff_slip | locked_panel | explicit_absence | equivalent
object_state_before: held | missing | locked | stale | disputed | sponsor_held | security_held | ward_held | archive_held | borrowed_claimant_held | explicit_absence
holder_or_absence: <holder or explicit_absence>
operator_or_absence: <operator or explicit_absence>
witness_or_seal_or_absence: <witness seal proof or explicit_absence>
throw_result:
intended_surface: <surface>
actual_or_disputed_thrown_surface: <surface or explicit_absence>
harmed_reader_or_absence: <reader or explicit_absence>
future_route_effect: <effect>The lens fails if the ledger only records generator online, switch used, operator assigned, priority confirmed, or power restored.
Hearing oracle
手动切换听证 must require source power row, transfer object, holder, operator, witness/seal, intended surface, actual/disputed surface, harmed reader, selected posture, and future reader.
Accepted branch families:
- certify switch throw;
- staffed operator throw;
- public witness throw;
- split or delayed throw;
- accept override;
- quarantine panel;
- false switch default.
Every constructive branch must include relief, cost, and future route effect.
Default oracle
伪切换默认 must fire or arm when:
- source power priority is cited as physical execution;
- transfer object is hidden, stale, missing, or unheld;
- holder, operator, witness, or seal is absent without explicit absence;
- intended and actual thrown surfaces diverge;
- sponsor/security/ward/archive/borrowed-source override is filed as clean;
- no future reader consumes switch state.
The default must name default actor, false switch claim, intended surface, actual/default thrown surface, harmed reader, transfer state after, and future route effect.
Progress metric
manualTransferSwitchCustodyProgress = 0..8:
0: no physical switch state.1: source emergency-power row exists.2: transfer object or explicit absence is visible.3: holder/operator/witness or explicit absence is visible.4: intended and actual/disputed powered surfaces are visible.5: hearing exposes at least three constructive branches.6: one branch records relief, cost, and future route effect.7: false switch default records missing input, wrong throw, or clean override.8: downstream power, facility, stage, custody, blackout, or route-asset reader consumes switch state.
Non-goals
- Not a generator lore check.
- Not a generic inventory-key check.
- Not a replacement for Emergency Power Priority.
- Not valid if one switch log proves every reader cleanly.