Live Floor Crew Load / 直播现场班组负荷机制

Live Floor Crew Load makes the ordinary live-production floor part of Storyteller’s executable pressure model. A slot can be lawful, edited, sponsored, and archived while still being unsafe because the camera lane is exhausted, the board lane is wrong, the runner lane is absent, or the medic/oxygen floor has been borrowed by another crisis.

This mechanism is the next useful expansion after the recent custody, quote, and stability cluster because it moves consequence away from ruling surfaces and into physical broadcast labor. It binds Call Sheet Load Ledger, Call Sheet Reassignment, Crew Refusal Default, and Call-Sheet Captain.

Mechanism promise

When a live slot or operation depends on crew coverage, the game must be able to ask:

Who is actually working the floor, who is too tired or absent, and what does the slot become when management explicitly silences the warning or accepts absence?

The answer must appear in cards, rites, events, counters, and future route availability. The floor cannot remain invisible while higher-level systems solve everything.

State-triggered entry

Open this mechanism when all of the following are true:

  1. a live slot, rehearsal, clearance operation, memorial drop, emergency correction, public testimony, or equivalent operation needs floor crew coverage;
  2. at least one crew lane is thin, exhausted, borrowed, coerced, wrong_team, or absent;
  3. the affected operation can change schedule pressure, blackout risk, broadcast reliability, person safety, route movement, proof movement, audience stability, or public legitimacy;
  4. the player can respond through rest, rotation, pay, captain recruitment, public safety, management proxy, skeleton crew, silence, or deliberately accepted absence after assigning Du Mian;
  5. explicitly selecting silence_warning or accept_absence can arm a non-neutral default; passive inactivity does not;
  6. no entry condition depends on a fixed turn number, day interval, chapter quota, or raw content count.

Core object model

ObjectMeaningRequired observable field
call_sheet_ledgerthe visible state of pressured floor coverageslot id, lane rows, captain state, assignments, defaults
crew_lanea finite production lane on the floorlane type, coverage state, load/rest/trust/refusal/blackout risk
call_sheet_captainthe person who can report true loadthe current rite accepts only card.du_mian_call_sheet_captain; accept_absence is a later branch state, not an input
slot_safety_statewhether the slot can safely runsafe, narrowed, delayed, skeleton, blackout-risk, defaulted
crew_defaultwhat happens after explicit silence or accepted absenceone exact actor/outcome pair, deltas, future route effect

Crew lanes

Implementation names may vary, but the mechanism should distinguish real floor functions when they matter:

  • camera_lane: frames witnesses, performers, public proof, and visible safety.
  • board_lane: switching, audio, emergency cuts, blackout containment.
  • runner_lane: cues, handoffs, corridor movement, proof/person delivery.
  • medic_lane: performer/crew survival, injury recognition, emergency response.
  • security_floor_lane: crowd boundary, seizure prevention, witness protection.
  • stage_lane: props, blocking, ritual geometry, physical timing.
  • edit_floor_lane: live redaction, delay masks, public version patches.
  • audience_gate_lane: entry control, fan queue, public receipt safety.
  • oxygen_floor_lane: oxygen support for audience, crew, and performers.

A lane is not an abstract action point. It has a coverage state and can refuse, misfire, or default.

State machine

StateMeaningRequired consequence
ledger_hiddenfloor load exists but is not surfacedno branch can claim safety proof
call_sheet_warning_openone or more lanes are risky and visibleplayer can reassign, pay, rest, publicize, force, silence, or accept absence
crew_lane_stabilizedone lane has credible coverageanother cost, delay, or lane effect remains visible
slot_narrowed_for_safetythe player reduces scope to match real crewroute survives with narrower effect or schedule cost
overtime_coveredcrew works through pay/favor/promisedebt, sponsor capture, fatigue, or future refusal risk rises
skeleton_crew_scarthe slot airs with too few or wrong workersblackout/misair/injury risk becomes durable
suppressed_floor_voicewarning is buried or coercedfuture default becomes hostile or recovery-only
hostile_call_sheet_leakhidden call sheet becomes public/audit-facinginspection and public pressure mutate future routes
crew_refusal_defaultexplicit silence or accepted absence arms a floor defaultCrew Refusal Default records actor and deltas; passive ignore does not auto-fire it

Branch contract

Branch A — Rest or rotate

The player protects the slot by pulling a pressured lane out of danger and replacing it, narrowing the slot, or delaying it.

Expected outcome:

  • selected lane becomes rested, rotated, or narrowed;
  • refusal or blackout risk falls;
  • schedule pressure, route narrowness, overtime cost, or another lane’s load rises.

Branch B — Pay overtime

The player uses money, promise, favor, sponsor cash, or payroll debt.

Expected outcome:

  • immediate coverage improves;
  • staff fatigue, overtime debt, sponsor capture, or future payroll pressure rises;
  • slot can air but becomes costlier later.

Branch C — Trust the call-sheet captain

The player lets the assigned card.du_mian_call_sheet_captain reveal the true floor state. No equivalent helper or explicit-absence card satisfies the current strict rite.

Expected outcome:

  • hidden refusal/blackout risk becomes visible before default;
  • management loses deniability;
  • future safe route may unlock, but inspection heat or schedule cost rises.

Branch D — Publicize safety

The player turns floor danger into public/audit-facing safety evidence.

Expected outcome:

  • crew trust and public safety legitimacy rise;
  • sponsor pressure, inspection heat, and schedule pressure rise;
  • route may become public-only, lawful-only, or costlier.

Branch E — Management proxy

The player presses Du Mian into carrying management’s official line.

Expected outcome:

  • immediate slot dispute or schedule pressure falls;
  • management_pressure_proxy, crew distrust, or contract capture rises;
  • the future route becomes sponsor-captured.

Branch F — Force skeleton crew

The player runs the slot with too few, wrong, coerced, or exhausted workers.

Expected outcome:

  • immediate cancellation pressure may fall;
  • skeleton scar, blackout risk, injury risk, fatigue, and hostile leak risk rise;
  • future route becomes costlier, narrowed, recovery-only, or blackout-risk.

Branch G — Silence warning

The player hides the ledger, suppresses the captain, or uses authority to keep the official call sheet clean.

Expected outcome:

  • immediate dispute may fall;
  • suppressed_floor_voice, hostile_call_sheet_leak, staff distrust, or inspection heat is armed;
  • future recovery is harder.

Branch H — Accept absence

After assigning the actual Du Mian card, the player deliberately records her as missed and accepts absent coverage for the selected runner lane. The unselected board row stays scope-only.

Expected outcome:

  • Crew Refusal Default is armed by the explicit choice;
  • default actor is recorded;
  • lane state, slot state, counter deltas, and future route effect mutate.

The current default event has exactly four executable actor/outcome pairs: crew_refusal / slot_delayed, sponsor_schedule / blackout_skeleton_default, hostile_leak / public_safety_leak, and absent_captain / slot_blocked. security_floor and wrong_team remain broader mechanism pressures, not current event branches.

Counter and durable-state contract

Every resolved branch must mutate at least three values. One must be relief, one must be cost, and one must affect future route or slot state.

Primary counters and states:

  • crew_load
  • crew_rest
  • crew_trust
  • crew_morale
  • staff_fatigue
  • overtime_debt
  • payroll_pressure
  • crew_refusal_risk
  • crew_refusal_live
  • skeleton_crew_scar
  • wrong_team_assigned
  • blackout_risk_armed
  • black_screen_slots
  • broadcast_reliability
  • schedule_pressure
  • slot_narrowed_for_safety
  • public_safety_legitimacy
  • inspection_heat
  • sponsor_stop_loss_pressure
  • route_narrowness
  • hostile_call_sheet_leak

Integration with existing mechanisms

Replay evidence contract

mechanic: storyteller.mechanic.live_floor_crew_load.v1
session_id: lens-live-floor-crew-load-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  source_slot: <slot_or_operation_id>
  pressured_lanes_min: 1
  future_route_or_slot_effect_present: true
  no_fixed_turn_trigger: true
ledger:
  card: card.call_sheet_load_ledger
  captain_card: card.du_mian_call_sheet_captain
  lane_rows:
    - lane: <lane>
      coverage: thin | exhausted | borrowed | coerced | absent | wrong_team
      refusal_risk: none | low | armed | live
      blackout_risk: none | low | armed | live
assignment:
  rite: rite.call_sheet_reassignment
  ledger: card.call_sheet_load_ledger
  source_slot: storyteller.card.call_sheet_memorial_correction_source_slot.v1
  selected_lane: storyteller.card.call_sheet_runner_lane_input.v1
  lane_state_before: storyteller.card.call_sheet_runner_thin_state.v1
  call_sheet_captain_or_absence: card.du_mian_call_sheet_captain
  handler_or_absence: storyteller.card.call_sheet_production_desk_handler.v1
  support_or_absence: storyteller.card.call_sheet_branch_cost_surface.v1
  response: storyteller.card.call_sheet_selected_response.v1
  selected_option: rest_rotate | pay_overtime | recruit_captain | publicize_safety | management_proxy | force_skeleton | silence_warning | accept_absence
  unselected_lane_or_absence: storyteller.card.call_sheet_board_lane_unselected.v1
  unselected_board_semantics: scope_only
  harmed_reader_if_suppressed: storyteller.card.call_sheet_harmed_floor_reader.v1
  future_reader: storyteller.card.call_sheet_future_slot_reader.v1
result:
  lane_state_after: <state>
  slot_state_after: <state>
  captain_state_after: <state>
  event_seen_or_armed: event.crew_refusal_default | none
  default_actor: crew_refusal | sponsor_schedule | hostile_leak | absent_captain | none
  default_state: slot_delayed | blackout_skeleton_default | public_safety_leak | slot_blocked | none
  future_route_effect: <effect>
  counter_deltas: {}
assertions:
  - entry_is_state_triggered
  - ledger_records_slot_lanes_captain_assignments_and_defaults
  - rite_requires_all_eleven_exact_assignments
  - selected_runner_mutates_while_unselected_board_remains_scope_only
  - branch_cost_surface_proves_the_selected_cost_not_universal_overtime
  - success_has_visible_cost
  - skeleton_or_silence_arms_refusal_blackout_or_leak
  - default_event_records_one_exact_actor_outcome_pair_deltas_and_route_effect

Non-goals

  • Not an HR simulator.
  • Not a staff directory.
  • Not a fixed upkeep phase.
  • Not a dashboard/governance page.
  • Not a generic morale counter.
  • Not a way to bypass existing archive, quote, custody, witness, sponsor, or route-asset consequences.
  • Not valid if legal, sponsor, edit, or archive success can make floor coverage irrelevant.