Fan Witness Custody Hearing / 粉丝证词羁押听证
Fan Witness Custody Hearing is the assignable management action that decides whether 火签 becomes a protected witness, oxygen-paid route asset, public receipt carrier, archive-only sealed source, missed witness, or hostile counter-broadcaster.
The rite exists to prevent fan-side evidence from being solved by a high-rank manager alone. The player must handle witness safety, oxygen cost, proof custody, and faction framing in the same action.
Entry state
Offer this rite when all of the following are true:
entry_state:
docket: storyteller.card.huo_qian_fan_witness_docket.v1
witness_state_any:
- offered
- trusted_witness
- paid_in_oxygen
- protected_witness
- missed
- radicalized_hostile
- captured_by_security
- explicit_absence
proof_rows_min: 1
proof_row_kind_any:
- fan_badge_clue
- oxygen_queue_stub
- d17_graffiti_map
- support_light_echo
- static_receipt
- missing_trainee_fragment
claimant_factions_min: 2
action_needed_any:
- protect
- buy
- publish
- seal
- suppress
- recover
no_fixed_turn_trigger: trueThe rite is invalid if it unlocks from a fixed turn number, day count, chapter quota, generic D-17 visit counter, lens-health state, or raw content count.
Assignment slots
assignment_slots:
fan_witness:
accepts:
- char.huo_qian
- route_asset.huo_qian_fan_witness
- explicit_absence
- state.radicalized_hostile
- state.captured_by_security
- state.burned_as_extremist
proof_object:
accepts:
- fan_badge_clue.d17
- oxygen_queue_stub.lost_support_light
- d17_graffiti_map
- support_light_echo.lideng
- k404_static_receipt.l07
- missing_trainee_list_fragment
- equivalent_fan_witness_proof
handler:
accepts:
- unauthorized_historian
- inspector_or_white_glove
- archive_handler
- artist_proxy
- contract_handler
- editor_black_box
- pirate_relay
- explicit_absence
payment_or_shield:
accepts:
- fan_oxygen_credit
- witness_payroll_slot
- public_receipt_slot
- archive_seal
- security_clearance_cover
- sponsor_cash
- explicit_unpaid
posture:
accepts:
- protect_witness_under_oath
- buy_evidence_with_oxygen_credit
- publish_fan_receipt
- archive_only_seal
- frame_as_extremist
- ignore_until_clearance
- recover_hostile_witnessResolution rules
A resolution must record the selected posture, assigned witness/proof/handler/payment, one relief, one cost, and at least three counter or durable-state deltas.
Branch A — Protect witness under oath
selected_posture: protect_witness_under_oath
requires_any:
- handler
- witness_payroll_slot
- public_receipt_slot
outcome_any:
- protected_witness
- route_asset.huo_qian_fan_witness
relief_any:
- proof_row_becomes_admissible
- fan_side_extraction_unlocked
- public_receipt_legitimacy_up
cost_any:
- inspection_heat_up
- payroll_leak_up
- handler_burden_up
- witness_safety_risk_up
deltas_min: 3
future_route_effect_any:
- fan_witness_assignment_available
- li_deng_personhood_claim_route_opens
- protected_witness_payroll_cost_activeBranch B — Buy evidence with oxygen credit
selected_posture: buy_evidence_with_oxygen_credit
requires_any:
- fan_oxygen_credit
- public_acknowledgment
outcome_any:
- paid_in_oxygen
- trusted_witness
- oxygen_queue_stub_verified
relief_any:
- huoqian_trust_up
- proof_legitimacy_up
- fan_group_stays_available
cost_any:
- fan_oxygen_surplus_spent
- sponsor_stop_loss_pressure_up
- future_fan_claim_expected
- public_receipt_distrust_if_underpaid
deltas_min: 3
future_route_effect_any:
- future_fan_receipt_discount
- fan_claim_expected_on_next_public_win
- sponsor_counterclaim_armedBranch C — Publish fan receipt
selected_posture: publish_fan_receipt
requires_any:
- proof_object
- handler_or_pirate_relay
outcome_any:
- public_receipt_carrier
- fan_proof_publicly_split
- route_asset.huo_qian_fan_witness
relief_any:
- public_receipt_legitimacy_up
- missing_trainee_fragment_enters_public_record
- security_extremist_frame_blocked
cost_any:
- inspection_heat_up
- sponsor_stop_loss_pressure_up
- radicalization_risk_up_if_unprotected
deltas_min: 3
future_route_effect_any:
- public_route_requires_witness_safety
- archive_challenge_pending
- sponsor_clean_cut_blockedBranch D — Archive-only seal
selected_posture: archive_only_seal
requires_any:
- archive_handler
- inspector_or_white_glove
outcome_any:
- archive_sealed_witness
- public_receipt_suppressed
relief_any:
- immediate_public_instability_down
- proof_not_destroyed
cost_any:
- huoqian_trust_down
- fan_oxygen_resentment_up
- public_receipt_legitimacy_down
- radicalization_risk_up
deltas_min: 3
future_route_effect_any:
- later_public_conversion_required
- witness_recovery_cost_up
- hostile_counter_broadcast_armed_if_unpaidBranch E — Frame as extremist
selected_posture: frame_as_extremist
outcome_any:
- burned_as_extremist
- security_extremist_frame_hardened
relief_any:
- security_clearance_pressure_down
- sponsor_or_archive_pressure_paused
cost_any:
- fan_witness_safety_down
- fan_oxygen_resentment_up
- public_receipt_legitimacy_down
- li_deng_personhood_claim_down
- hostile_witness_reprisal_armed
deltas_min: 3
future_route_effect_any:
- fan_side_extraction_blocked_or_costlier
- hostile_fan_testimony_pending
- recovery_requires_public_contrition_or_witness_payrollBranch F — Ignore until clearance
selected_posture: ignore_until_clearance
outcome_any:
- missed
- captured_by_security
- radicalized_hostile
emits_or_arms: storyteller.event.fan_witness_radicalization_break.v1
relief_any:
- handler_slot_saved
- immediate_schedule_pressure_not_spent
cost_any:
- custody_gap_up
- radicalization_risk_up
- proof_row_lost_or_leaked
- fan_oxygen_resentment_up
deltas_min: 3
future_route_effect_any:
- fan_witness_hearing_costlier
- proof_burden_on_producer_up
- hostile_narration_capture_armedReplay evidence shape
rite_id: storyteller.rite.fan_witness_custody_hearing.v1
session_id: lens-storyteller-huo-qian-fan-witness-custody-v1-<timestamp>
seed: <deterministic-seed>
preconditions:
docket: storyteller.card.huo_qian_fan_witness_docket.v1
witness_state_before: offered | trusted_witness | paid_in_oxygen | protected_witness | missed | radicalized_hostile | captured_by_security | explicit_absence
proof_rows:
- <proof id>
claimant_factions:
- fan_public
- security_or_archive_or_sponsor_or_inspector_or_editor
assignments:
fan_witness: char.huo_qian | route_asset.huo_qian_fan_witness | explicit_absence | hostile_or_captured_state
proof_object: <proof id or explicit_absence>
handler: <handler or explicit_absence>
payment_or_shield: <payment, payroll, public receipt, archive seal, security cover, sponsor cash, or explicit_unpaid>
posture: <selected posture>
outcome:
witness_state_after: protected_witness | paid_in_oxygen | public_receipt_carrier | archive_sealed_witness | burned_as_extremist | missed | radicalized_hostile | captured_by_security
relief: <one relief>
cost: <one cost>
deltas:
huoqian_trust: <delta or no change>
fan_witness_safety: <delta or no change>
radicalization_risk: <delta or no change>
fan_oxygen_resentment: <delta or no change>
public_receipt_legitimacy: <delta or no change>
assertions:
- offer was state-triggered
- witness/proof/handler/payment assignments were visible
- outcome changed durable witness state
- at least three counters or durable tags changed
- no high-rank-only shortcut resolved the rite
- no fixed turn trigger was usedNon-goals
- Not a generic dialogue check.
- Not a sympathy scene.
- Not a free fan army unlock.
- Not a high-rank handler shortcut.
- Not a fixed-turn side quest.
- Not a way to erase archive, sponsor, security, or public costs.