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: true

Invalid 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:

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_default while 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 result

Branch map

Branch阮停 stateReliefCost/scarFuture route effect
Protect/recruit usherprotected_empty_seat_usher or recruited_empty_seat_usherabsence and refusal become legibleworker exposure, handler burden, inspection heat, or sponsor pressure risescounterclaim or correction route unlocked with cost
Seat named bodyencountered_empty_seat_row or proxy_registry_clerkanswerability clarity risesseated actor takes pressure; route narrows to that bodyfuture reader accepts with named limitation
Accept proxy with receiptproxy_registry_clerkimmediate sponsor/management dispute fallscontract capture, public distrust, lawful appeal pressure risessponsor-only or lawful-only route unless unwound
Publicize absence/refusalpublic_absence_witnesspublic receipt legitimacy risespublic contradiction, inspection heat, worker exposure risespublic route opens; private clean route becomes costlier
Guard worker from scapegoatworker_scapegoat_guardworker scapegoat risk fallsproducer or sponsor pressure returnsworker-protection route improves; management route narrows
Preserve empty seatprotected_empty_seat_usherfuture absence proof survivescurrent route delays or pays scarfuture counterclaim reads empty seat as fact
Suppress/crop rowsuppressed_empty_seat_row or hostile_empty_seat_witnessshort-term clean route pressure fallshostile witness, public distrust, inspection heat, or recovery-only scar risescontradiction-pending or recovery-only route
Miss/defaultmissed_by_clean_ruling or explicit_absenceno clean reliefdefault actor owns absencefuture 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_up

Missability 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_one

Accepted 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_seat

Runtime-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.17public_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.json assigns all thirteen real cards and reaches recruited_empty_seat_usher.
  • lens/replays/ruan-ting-empty-seat-usher.hostile-default.replay.json suppresses the row, resolves the worker-scapegoat terminal, removes the person card, and reaches hostile_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.