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

This lens observes whether 直播现场班组负荷线 and 直播现场班组负荷机制 correctly make ordinary floor crew coverage executable.

A pass cannot be achieved by saying a team is tired, adding a morale note, or resolving the slot through legal/archive/edit/sponsor authority alone. The implementation must show a call-sheet ledger, at least one pressured crew lane, an assignable reassignment rite, divergent branches, visible cost on success, and a crew-refusal/default path that mutates future route or slot state.

This lens observes:

It is observed through:

Observable promise

When a live or near-live operation needs real people on the floor, the game must prove that coverage exists or absence matters. The player cannot win a clean ruling and then assume camera, board, runner, medic, stage, security floor, edit floor, audience gate, or oxygen floor capacity magically appears.

The lens passes only when the implementation asks: which lane is unsafe, who reports it, what response consumes or mutates coverage, and what future route reads the result?

Must pass

1. Entry is state-triggered

Required evidence:

entry_state:
  trigger_kind: state_pressure
  source_slot_present: true
  pressured_crew_lane_present: true
  future_route_or_slot_effect_present: true
  no_fixed_turn_trigger: true

The lens fails if eligibility depends on a fixed turn number, day interval, chapter quota, lens-health state, raw page count, or generic upkeep phase.

2. Ledger records slot and lanes

Call Sheet Load Ledger must record:

  • source slot or operation;
  • slot family;
  • future route or slot effect;
  • the actual card.du_mian_call_sheet_captain and her post-choice state;
  • at least one crew lane row;
  • coverage state;
  • refusal and blackout risk;
  • assignment response;
  • risk actor and state if the player explicitly selects silence or absence.

Minimum row shape:

crew_lane_row:
  lane: camera | board | runner | medic | security_floor | stage | edit_floor | audience_gate | oxygen_floor | equivalent
  coverage_before: rested | thin | exhausted | borrowed | coerced | absent | wrong_team
  refusal_risk_before: none | low | armed | live
  blackout_risk_before: none | low | armed | live
  assigned_from: <handler_or_room_or_absence>
  risk_if_explicitly_unworked: <default_actor_and_state>

The lens fails if the ledger is only a mood tracker, staff list, or action-point reminder.

3. At least one pressured crew lane exists

At least one lane must be in a pressured state:

  • thin;
  • exhausted;
  • borrowed;
  • coerced;
  • absent;
  • wrong_team;
  • equivalent.

The pressure must affect a live route, slot, safety, blackout, audience, proof, movement, or broadcast-reality state. The lens fails if every lane is always safe or if the risk is cosmetic.

4. The actual captain card and chosen person-state are visible

The current executable rite requires the actual 杜眠 card. She may become protected, missed, suppressed, hostile, public, or captured through a selected branch. accept_absence records a deliberate missed state after assignment; it is not an explicit-absence captain input.

Valid captain states:

  • floor_crew_advocate;
  • neutral_call_sheet_captain;
  • management_pressure_proxy;
  • public_safety_witness;
  • blackout_skeleton_lead;
  • suppressed_floor_voice;
  • hostile_call_sheet_leak;
  • missed_by_clean_ruling;

The lens fails if floor truth appears without the actual person card. A route asset, ledger source, explicit-absence tag, or generic helper cannot substitute for the assigned Du Mian card.

5. Rite is assignable

Call Sheet Reassignment must require these eleven exact assignments:

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

The selected runner is the only lane mutated by the current packet; the board row is scope-only. storyteller.card.call_sheet_branch_cost_surface.v1 proves the cost accepted by the selected branch and does not assert that every branch paid overtime.

The lens fails if a famous handler, legal order, archive seal, edit patch, or sponsor payment clears the branch without the exact runner, Du Mian, response, cost, and scope assignments.

6. Branches diverge

At least four branch families must be playable or explicitly blocked by state:

  • rest / rotate;
  • pay overtime;
  • trust or recruit captain;
  • publicize safety;
  • management proxy;
  • force skeleton crew;
  • silence warning;
  • accept absence.

Each branch must differ by lane state, slot state, captain state, cost, and future route effect. The lens fails if every branch returns slot_safe.

7. Success has visible cost

Any successful branch must carry cost.

Accepted costs include:

  • schedule pressure;
  • route narrowing;
  • overtime debt;
  • payroll pressure;
  • sponsor capture;
  • inspection heat;
  • staff fatigue;
  • other lane load;
  • management deniability loss;
  • public-only or lawful-only route restriction;
  • future refusal risk;
  • skeleton scar;
  • blackout risk;
  • hostile leak risk.

The lens fails if rest, pay, safety, or captain trust becomes a free universal repair.

8. Skeleton and silence arm durable risk

If the player forces a skeleton crew or silences the warning, the current strict rite must arm or produce at least one durable risk:

  • skeleton_crew_scar;
  • blackout_risk_armed;
  • suppressed_floor_voice;
  • hostile_call_sheet_leak;
  • crew_refusal_live;
  • route_recovery_only;
  • equivalent.

The lens fails if unsafe staffing simply lowers schedule pressure with no future consequence. wrong_team_assigned remains a broader crew-load state, but it is not a current option or terminal actor of event.crew_refusal_default.

9. Default event mutates state

Crew Refusal Default is armed only when the player explicitly selects silence_warning or accept_absence. Passive non-assignment and quick-action expiry are not engine hooks; an unworked ledger is a visible risk, not an automatic event trigger.

Required event evidence:

default_event:
  event: event.crew_refusal_default
  source_slot: slot.live.memorial_correction_floor_01
  selected_lane: runner
  unselected_board: scope_only
  arming_choice: silence_warning | accept_absence
  default_actor: crew_refusal | sponsor_schedule | hostile_leak | absent_captain
  default_state: slot_delayed | blackout_skeleton_default | public_safety_leak | slot_blocked
  future_route_effect: costlier | recovery_only | hostile
  counter_deltas: {}

The lens fails if default is only narration.

10. At least three deltas exist

Every resolved branch must mutate at least three counters or durable states:

  • one relief delta;
  • one cost delta;
  • one future route or slot-state delta.

Expected surfaces:

  • crew_load;
  • crew_rest;
  • crew_trust;
  • crew_morale;
  • staff_fatigue;
  • overtime_debt;
  • payroll_pressure;
  • crew_refusal_risk;
  • 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.

11. Higher authority cannot replace floor coverage

The implementation must explicitly fail or route-cost any branch where the player tries to treat law, archive, edit, sponsor, or stability pricing as a substitute for real floor coverage.

Allowed outcomes for that attempted shortcut:

  • the player deliberately chooses accept_absence after assigning the actual Du Mian card;
  • skeleton crew scar is armed;
  • captain becomes suppressed or hostile;
  • an explicitly armed default event resolves or remains pending;
  • route becomes narrower, costlier, public-only, lawful-only, or recovery-only.

12. Replay provenance exists

Passing evidence must include seed/session id, entry state, ledger rows, offered rite, selected branch, lane mutation, captain mutation, event emission or armed event, counter deltas, and future route effect.

Replay evidence expectation

lens_id: storyteller.lens.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_crew_lane_present: true
  actual_du_mian_card_present: true
  future_route_or_slot_effect_present: true
  no_fixed_turn_trigger: true
offered:
  card: card.call_sheet_load_ledger
  rite: rite.call_sheet_reassignment
ledger_rows:
  - lane: <crew_lane>
    coverage_before: thin | exhausted | borrowed | coerced | absent | wrong_team
    refusal_risk_before: none | low | armed | live
    blackout_risk_before: none | low | armed | live
    risk_if_explicitly_unworked: <default_actor_and_state>
branch_runs:
  stabilizing_branch:
    response: rest_rotate | pay_overtime | recruit_captain | publicize_safety
    selected_lane: storyteller.card.call_sheet_runner_lane_input.v1
    captain: card.du_mian_call_sheet_captain
    support_or_absence: storyteller.card.call_sheet_branch_cost_surface.v1
    unselected_board: storyteller.card.call_sheet_board_lane_unselected.v1
    unselected_board_semantics: scope_only
    lane_state_after: <state>
    captain_state_after: <state>
    slot_state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
  refusal_or_skeleton_branch:
    response: silence_warning | accept_absence
    selected_lane: storyteller.card.call_sheet_runner_lane_input.v1
    captain: card.du_mian_call_sheet_captain
    unselected_board: storyteller.card.call_sheet_board_lane_unselected.v1
    unselected_board_semantics: scope_only
    event_seen_or_armed: event.crew_refusal_default
    default_actor: crew_refusal | sponsor_schedule | hostile_leak | absent_captain
    default_state: slot_delayed | blackout_skeleton_default | public_safety_leak | slot_blocked
    lane_state_after: <state>
    slot_state_after: <state>
    future_route_effect: <effect>
    counter_deltas: {}
assertions:
  - primary_links_exist
  - entry_is_state_triggered
  - ledger_records_slot_lanes_captain_assignments_and_defaults
  - at_least_one_pressured_crew_lane_exists
  - rite_requires_all_eleven_exact_assignments
  - branches_diverge_by_lane_slot_captain_and_future_route
  - success_has_visible_cost
  - skeleton_or_silence_arms_refusal_blackout_or_leak
  - default_event_records_four_exact_actor_outcome_pairs_deltas_and_route_effect
  - legal_archive_edit_or_sponsor_success_cannot_replace_floor_coverage
  - replay_evidence_records_seed_session_entry_branch_and_deltas
  - no_fixed_turn_trigger

Progress metric

liveFloorCrewLoadProgress = 0..10:

  • 0: no live floor crew pressure.
  • 1: source slot exists and can affect future route or slot state.
  • 2: at least one crew lane has pressured coverage.
  • 3: the actual Du Mian card and her post-choice state are recorded.
  • 4: Call Sheet Load Ledger enters play with slot, lane rows, assignments, and defaults.
  • 5: Call Sheet Reassignment accepts all eleven exact assignments, selects the runner lane, and keeps the board row scope-only.
  • 6: stabilizing branch mutates lane and slot state with cost.
  • 7: skeleton, silence, or deliberately accepted absence arms durable risk.
  • 8: explicit silence_warning or accept_absence arms Crew Refusal Default with the exact pending triple and one exact actor/outcome pair; passive ignore does not.
  • 9: future route or slot state becomes narrowed, costlier, blocked, recovery-only, public-only, lawful-only, or blackout-risk.
  • 10: replay evidence proves both a stabilizing branch and a refusal/skeleton/default branch with deltas and no fixed turn trigger.

Non-goals

  • Not bulk content or raw count satisfaction.
  • Not a fixed-turn escalation.
  • Not a dashboard or governance lens.
  • Not a generic morale meter.
  • Not a staff directory.
  • Not a full labor simulator.
  • Not a replacement for production triage, facility access, audience stability, route-asset maintenance, archive custody, quote recall, sponsor pressure, or legal proof systems.
  • Not satisfied by page existence alone; proof must come from ledger state, all eleven exact rite assignments, selected-runner mutation, actual Du Mian state, scope-only board evidence, default event, and replay/session deltas.