Ruan Ting Empty-Seat Usher / 阮停空席引座员线
Ruan Ting Empty-Seat Usher is the character storyline for Empty-Seat Usher, the low-rank staffer who keeps an absent accountable body from becoming invisible.
The answerability-seat system already asks who must remain reachable after proof, apology, legality, management, or operator consensus resolves a crisis. 阮停 makes the empty chair itself playable. She does not decide blame. She records who was asked to sit, who refused, who sent a proxy, who was protected, who was scapegoated, and which future route must read that absence.
The dramatic question is:
When a clean route wants to proceed without a body in the answerability seat, do you protect the usher who preserves the empty chair, or let the absence become someone else’s clean filing?
Bound content pack
This storyline binds:
It reuses the existing answerability mechanism instead of adding a new one.
Why this fills a gap
The current answerability mesh can already prove that a future route needs a seat. The remaining character gap is the person who keeps absence legible.
Without a bound storyline, 阮停 can collapse into a helper tag on the docket. This line gives her durable states:
- recruitable when the player protects the empty-seat row before a future reader consumes it;
- missable when a clean ruling, apology, legal conversion, or management metric moves forward without recording absence;
- hostile when her row is cropped, coerced, or used to blame a worker;
- capturable when sponsor, management, or archive pressure turns proxy seating into official cleanliness;
- route-bearing when future counterclaim, correction, fan receipt, lawful appeal, or ending scar reads her preserved absence.
State-triggered entry
Open this storyline only from state pressure.
entry_state_required:
trigger_kind: state_pressure
source_resolution_present: true
source_resolution_family: public_contrition | proof_burden | management_metric | broadcast_legality | operator_conclave | route_asset | equivalent
unresolved_harm_or_obligation_visible: true
future_reader_or_route_needs_answerability: true
candidate_seat_or_empty_seat_visible: true
proxy_refusal_coercion_or_absence_can_be_recorded: true
actual_ruan_ting_card_visible: true
player_can_protect_seat_assign_body_accept_proxy_preserve_empty_seat_suppress_or_default: true
non_neutral_default_exists: true
no_fixed_turn_trigger: true
no_fixed_day_or_phase_trigger: true
no_raw_card_count_trigger: true
no_dashboard_or_lens_health_trigger: trueInvalid entry examples: a fixed chapter aftermath, a generic apology scene, a relationship threshold, a dashboard warning, a raw number of public receipts, or a lens-health state.
Storyline spine
Beat 1 - A prior success creates an unanswered seat
A route has produced proof, contrition, legal conversion, operator consensus, management yield, or route-asset relief. The outcome helps the current crisis but leaves a future reader asking who remains answerable.
Valid source surfaces include:
- 公开悔过账本;
- 举证责任重派线;
- 经营压缩台;
- 操作员证人会线;
- 播出合法性转换线;
- route-asset custody, correction slot, sponsor unwind, claimant floor, or ending-scar equivalent.
Beat 2 - 阮停 names the empty-seat row
Answerability Seat Docket must expose the source resolution, unresolved harm, candidate seat, proxy or absence, proof anchor, refusal/coercion state, future reader, and default risk.
The row must also name the actual 阮停 card and her state. Candidate absence remains a separate docket field and cannot replace the usher assignment:
ruan_ting_row:
source_resolution_id: public_contrition.receipt.17
unresolved_harm_or_obligation: <harm_or_obligation>
proposed_seat_holder: producer | artist | sponsor | inspector | worker | public_delegate | editor | archive | proxy | empty_seat | explicit_absence
proxy_or_absence: <proxy_id | explicit_absence>
refusal_or_coercion_state: none | refused | coerced | absent | proxy_sent | cropped_out
ruan_ting_card: storyteller.character.ruan_ting_empty_seat_usher.v1
ruan_ting_state_before: unseen | encountered_empty_seat_row | protected_empty_seat_usher | recruited_empty_seat_usher | proxy_registry_clerk | public_absence_witness | worker_scapegoat_guard | sponsor_captured_proxy_clerk | suppressed_empty_seat_row | hostile_empty_seat_witness | missed_by_clean_ruling
harmed_reader_if_hidden: public_counterclaim | lawful_appeal | fan_receipt | worker_protection | sponsor_unwind | correction_slot | ending_scar | equivalent
future_reader_or_route: <reader_or_route_id>Beat 3 - The route asks for a clean chair
At least two pressures conflict:
- public receipt wants an accountable body;
- sponsor or management wants a proxy to carry the cost;
- lawful reader wants a narrow appeal body;
- worker protection wants no low-rank scapegoat;
- artist or witness boundary wants absence preserved rather than coerced presence;
- future route wants to know whether it can counterclaim, correct, unwind, or scar the prior success.
Beat 4 - Answerability assignment chooses her posture
Run Answerability Seat Assignment with the actual 阮停 card in the required usher slot. Her resulting posture is selected by the rite; explicit candidate absence is recorded separately and cannot substitute for her card.
The player may:
- recruit or protect her as the empty-seat usher;
- assign an answerable body with her row preserved;
- accept a proxy while recording capture cost;
- publicize refusal or absence;
- guard a worker from scapegoat seating;
- preserve the empty seat as a route asset;
- suppress or crop the row;
- select
suppress_or_defaultwhile her card remains assigned, then let the first-filer event determine the scarred terminal.
Beat 5 - Her state becomes future route state
Every branch must mutate both seat state and 阮停 state.
ruan_ting_route_states:
encountered_empty_seat_row:
meaning: she has made absence visible before a future reader consumes it
protected_empty_seat_usher:
meaning: her docket row can survive pressure once, with exposure cost
recruited_empty_seat_usher:
meaning: she becomes a narrow route asset for one future answerability docket
proxy_registry_clerk:
meaning: she records proxy seating without treating it as full answerability
public_absence_witness:
meaning: she can publish refusal or empty chair to a public reader
worker_scapegoat_guard:
meaning: she blocks a low-rank worker from being filed as the answerable body
sponsor_captured_proxy_clerk:
meaning: she signs a proxy row under pressure and future public/lawful readers distrust it
suppressed_empty_seat_row:
meaning: her row exists but was hidden or cropped
hostile_empty_seat_witness:
meaning: she can testify that a future clean route hid absence or proxy capture
missed_by_clean_ruling:
meaning: no usher state was recorded before the route consumed the answerability resultBranch map
| Branch | 阮停 state | Relief | Cost/scar | Future route effect |
|---|---|---|---|---|
| Protect/recruit usher | protected_empty_seat_usher or recruited_empty_seat_usher | absence and refusal become legible | worker exposure, handler burden, inspection heat, or sponsor pressure rises | counterclaim or correction route unlocked with cost |
| Seat named body | encountered_empty_seat_row or proxy_registry_clerk | answerability clarity rises | seated actor takes pressure; route narrows to that body | future reader accepts with named limitation |
| Accept proxy with receipt | proxy_registry_clerk | immediate sponsor/management dispute falls | contract capture, public distrust, lawful appeal pressure rises | sponsor-only or lawful-only route unless unwound |
| Publicize absence/refusal | public_absence_witness | public receipt legitimacy rises | public contradiction, inspection heat, worker exposure rises | public route opens; private clean route becomes costlier |
| Guard worker from scapegoat | worker_scapegoat_guard | worker scapegoat risk falls | producer or sponsor pressure returns | worker-protection route improves; management route narrows |
| Preserve empty seat | protected_empty_seat_usher | future absence proof survives | current route delays or pays scar | future counterclaim reads empty seat as fact |
| Suppress/crop row | suppressed_empty_seat_row or hostile_empty_seat_witness | short-term clean route pressure falls | hostile witness, public distrust, inspection heat, or recovery-only scar rises | contradiction-pending or recovery-only route |
| Miss/default | missed_by_clean_ruling or explicit_absence | no clean relief | default actor owns absence | future route blocked, captured, sponsor-only, lawful-only, or recovery-only |
No branch may make an empty seat satisfy every public, lawful, sponsor, worker, archive, route-asset, and ending-scar reader.
Route asset limit
Recruiting 阮停 unlocks a narrow route asset.
route_asset_ruan_ting_empty_seat_usher:
unlock_state: recruited_empty_seat_usher
can_do:
- preserve one empty-seat or refusal row for a future counterclaim
- verify one proxy was limited and not full answerability
- block one low-rank worker scapegoat if proof anchor or public receipt is present
cannot_do:
- assign guilt
- make absence equal absolution
- make sponsor proxy satisfy public grief
- turn worker scapegoat into lawful accountability
- satisfy all future readers at once
use_cost_any:
- worker_exposure_up
- handler_burden_up
- inspection_heat_up
- sponsor_stop_loss_pressure_up
- public_contradiction_up
- future_counterclaim_cost_upMissability and recovery
阮停 is missed when a future route consumes proof, apology, legal conversion, management metric, operator consensus, or route-asset relief without seating an answerable body or preserving explicit absence.
Missed/default states include:
missed_by_clean_ruling;empty_seat_default_risk;proxy_capture;worker_scapegoat_armed;false_clean_answerability;hostile_absent_claimant;recovery_only_answerability.
Recovery is allowed only with scar: reopen the docket, publish refusal, add a lawful appeal receipt, unwind sponsor proxy, protect the worker row, assign a named body with cost, or route the hostile witness through a correction slot.
Counter contract
Every constructive branch must mutate:
counter_deltas_required:
relief: at_least_one
cost: at_least_one
future_reader_or_route_effect: at_least_oneAccepted surfaces include answerability_clarity, empty_seat_risk, false_answerability_clean, producer_license_pressure, public_receipt_legitimacy, public_receipt_distrust, sponsor_stop_loss_pressure, contract_capture, inspection_heat, bureau_favor_debt, artist_boundary_risk, worker_exposure, worker_scapegoat_risk, protected_witness_payroll_due, route_asset_integrity, future_counterclaim_cost, and recovery_only_pressure.
Replay/session evidence shape
storyline_id: storyteller.storyline.character.ruan_ting_empty_seat_usher.v1
session_id: lens-ruan-ting-empty-seat-usher-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
trigger_kind: state_pressure
source_resolution_present: true
unresolved_harm_or_obligation_visible: true
future_reader_or_route_needs_answerability: true
candidate_seat_or_empty_seat_visible: true
actual_ruan_ting_card_visible: true
no_fixed_turn_trigger: true
offered:
character: storyteller.character.ruan_ting_empty_seat_usher.v1
docket: storyteller.card.answerability_seat_docket.v1
rite: storyteller.rite.answerability_seat_assignment.v1
branch_result:
selected_posture: protect_recruit_usher | seat_producer_management | seat_artist_with_boundary | accept_sponsor_proxy_with_receipt | seat_inspector_lawful_body | guard_worker_from_scapegoat | publicize_absence | split_answerability | preserve_empty_seat | suppress_or_default
ruan_ting_state_after: <state>
seat_state_after: <state>
relief: [<counter_or_state>]
cost: [<counter_or_state>]
future_reader_effect: unlocked_with_cost | accepted_with_limitation | sponsor_only | lawful_only | public_only | contradiction_pending | blocked | recovery_only
assertions:
- entry_is_state_triggered
- ruan_ting_state_is_not_generic_helper_tag
- proxy_absence_and_refusal_are_visible_or_explicit_absence
- branch_mutates_person_state_and_future_reader
- suppressed_or_missed_branch_is_durable
- no_universal_clean_empty_seatRuntime-backed storyline
This storyline is now executable as one focused packet: fourteen cards (thirteen exact starter assignments plus the default counterreceipt), one two-day thirteen-slot nonrepeatable rite, and one five-terminal default event. The rite exposes ten ordered person-state branches; only choice 0 recruits 阮停 and grants her bounded route asset, while only choice 9 arms the default.
The runtime proves one fixed public-contrition row (public_contrition.receipt.17 → public_counterclaim), not every broader source family listed in the design envelope.
Two integrity-backed Game CLI runs make bounded recruitment and hostile loss observable; the separate missed terminal is exercised by the focused all-terminal test:
lens/replays/ruan-ting-empty-seat-usher.recruit.replay.jsonassigns all thirteen real cards and reachesrecruited_empty_seat_usher.lens/replays/ruan-ting-empty-seat-usher.hostile-default.replay.jsonsuppresses the row, resolves the worker-scapegoat terminal, removes the person card, and reacheshostile_empty_seat_witness.
lens/storyteller-ruan-ting-empty-seat-usher.runtime.test.ts also proves every branch and default terminal is reachable and mutually distinct.
Non-goals
- Not a verdict system.
- Not a generic apology scene.
- Not a relationship or affinity branch.
- Not a way to make absence clean.
- Not a fixed-turn aftermath.
- Not a substitute for proof burden, public contrition, legal conversion, or management compression.